LINUX.ORG.RU

exe - файлы С/C++ в Linux&Windows


0

0

Проблема в следующем: Если в программе подключается какая-то библиотека, то компилятор не включает ее в exe файл, те этот exe файл не работает на компах, где не используемой в программе библиотеки. Как можно в этим разобраться.

Если кто знает напишите и как бороться с этим глюком в Windows т.к. приходиться разробатывать как Линуксовые так и виндовые приложения. Спасибо

anonymous

Может я чего-то не допонял...

Эта проблема решается либо включением в дистрибутив этой программы нужной библиотеки, либо статической линковкой программы с этой библиотекой.

Dead ★★★★
()
Ответ на: комментарий от anonymous

А какой у тебя компилятор? В этом направлении и ищи. Гоголь в помощь!

Selecter ★★★★
()
Ответ на: комментарий от anonymous

>А как организовать статическую линковку?

Нужно просто иметь статические библиотеки (расширение *.a). На этапе линковки имеет место приоритет файлов библиотек с разным расширением. То есть, если в одном каталоге есть файлы lib.a и lib.so, то линкер будет юзать статическую библиотеку lib.a. А иначе динамическую, если статической нет. В винде - статические *.lib, а динамические - *.dll.

RomanU
()
Ответ на: комментарий от RomanU

>>То есть, если в одном каталоге есть файлы lib.a и lib.so, то линкер >>будет юзать статическую библиотеку lib.a.
Наоборот, по умолчанию идет компоновка с динамическими библиотеками однако это можно подавить ключем -g или -static

linuxsoft
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.