singlepost

Перенос кода на другую платформу << На главную или назад  

Платформа Windows(XP или Vista).
Язык программирования C++.
Программа не использует каких то специальных библиотек подобным QDevelop, VCL, MFC и другие. Все функции строго WinAPI и библиотека C.
Компилировал на Visual Studio 2005. Попробовал запустить н другом компьютере выводит ошибку: "Приложение не правильно установлено." Я так понимаю что Visual Studio всё таки насильно подключает какие то библиотеки. Попробовал через GNU – ошибка компиляции, хотя все либ-файлы я подключил. Попробовал через CBuilder не знаю как подключить правильно что б работало везде. Кому не трудно подскажите как проще поступить?

63 ответов в теме “Перенос кода на другую платформу”

  1. 17
    Лёха Воронин ответил:

    О! И действительно так! Вот кто не знаешь так не рисуйся что шаришь…

    Спасибо Михаил Михалев)))

  2. 16
    Михаил Михалев ответил:

    На самом деле все не так.
    Надо в настройках проекта в вижуал студии выбрать правильный рантайм(без dll), иначе придется с дистрибом программы таскать за собой vcredist_x86.exe.
    Делается это так:
    1. открываем настройки проекта
    2. Configuration Properties->C++->Code Generation
    3. выбираем рантайм "Multi-threaded" или "Multi-threaded Debug" в зависимости от текущей конфигурации билда.

  3. 15
    Алексей Бобьяков ответил:

    Неправильно решил. Надо было в настройках проекта выбрать статическую линковку.

  4. 14
    Лёха Воронин ответил:

    я уже решил проблему! Есть программа DLL to LIB 3.00. Скомпилировал и все работает:)))

  5. 13
    Александр Сапрыкин ответил:

    фигню пишете…. слинкуйте динамически и положите в папку с екзешником эти библиотеки. ноль проблем. только если правильно помню необходимо отключать генерацию манифеста.

  6. 12
    Александр Сапрыкин ответил:

    Извините за не точности, последний раз занимался этой проблемой больше полугода назад (как и работал со студией)

  7. 11
    Лёха Воронин ответил:

    ну что?? это тоже самое! надо что б был один файл!!!

  8. 10
    Александр Сапрыкин ответил:

    VS выше 2003 использует библиотеки при линковке которые не идут в комплекте с виндой.. (это сакс, поэтому я терпеть не могу продукты мелкософта)
    что делать – собирать со статической библиотекой (не помню опции проекта),
    - тянуть с приложением библиотеки MSVCPXX.dll MSVCRXX.dll где XX – версия студии и мучаться с манифестами и зафисимостями
    - поставлять с приложением Microsoft Redistributable Package XXXX – версия студии

  9. 9
    Александр Сапрыкин ответил:

    да если линковать статически, то необходимо чтобы все подключаемые динамические библиотеки так же были скомпилированы со статической этой библиотекой либо опять же таскать с приложением библиотеки

    надеюсь объяснил более-менее понятно.

  10. 8
    Лёха Воронин ответил:

    я вроде указала что б собирало со статическими билиотеками. Чё то наверное не доукзал… А кто помнит как правильно настраивать меню опций для статической компиляции.

  11. 7
    Александр Сапрыкин ответил:

    не советую статически линковать… лучше с приложением поставлять эти библиотеки, ибо гемороя потом не оберетесь

  12. 6
    Лёха Воронин ответил:

    а есть утилиты что перделывают *.DLL в *.LIB ????

  13. 5
    Лёха Воронин ответил:

    Там подключены:
    WS2_32.DLL – винсокеты
    KERNEL32.DLL – понятно зачем;-)
    MSSVCR80.DLL – Visual Studio этого я не подключал!!!
    Думаю из неё не запускаеться на других компах прога.
    Как от неё избавиться???

  14. 4
    Лёха Воронин ответил:

    Ну я имел ввиду как скомпилировать код так чтоб не чего надо было дополнительно ставить на машину.

  15. 3
    Марина Гаврилина ответил:

    Вместе с Вижуалом вроде идет какая-то утилита, которая показывает от каких библиотек зависит программа. Их надо найти и класть в одну папку с экзешником. Как утилита называется не помню, давно в вижуале не писала.

  16. 2
    Лёха Воронин ответил:

    Спасибо большое за совет, не знал. А если нужно подключить как static library? Что б всё было в одном файле?

  17. 1
    Дмитрий Салмин ответил:

    можно использовать exescope или утилиту из штатной поставки студии – Dependency walker или как то так

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.