компиляция с ++ в "настоящие" программы - PullRequest
7 голосов
/ 06 августа 2009

Я знаю, как использовать g ++ и все это для компиляции программ на c ++. Мой вопрос: если у меня есть какой-то код, который зависит от различных библиотек, как я могу скомпилировать его в простой исполняемый файл, который я могу отправить любому. Для этого я был бы рад просто оставить его на OS X.

Я хотел бы знать, как скомпилировать "настоящую" программу, а не просто исполняемый файл, который я могу запустить локально. Я попытался найти это, но не нашел много.

Нужно ли использовать установку программного обеспечения? Я знаю, что в Windows вы можете сделать некоторые простые вещи .exe, которые используют общие файлы DLL.

Ответы [ 3 ]

8 голосов
/ 06 августа 2009

Вы ищете "статическое связывание". Это импортирует весь необходимый код из библиотек в ваш исполняемый файл. Обратите внимание, что исполняемый файл станет больше. Если вы используете стандартные библиотеки, они должны присутствовать при стандартной установке ОС.

Вы должны попробовать "-static" флаг g ++. Запуск «ldd your_executable_name» должен отобразить все библиотеки, которые использует ваш исполняемый файл (динамически связанный).

3 голосов
/ 06 августа 2009

Поскольку вы говорите о Mac OS X, вы, вероятно, захотите сделать пакет. Qt Software имеет очень полезное руководство по развертыванию для начала работы с этим видом деятельности.

0 голосов
/ 06 августа 2009

Вы можете использовать опцию -static или -s для статического связывания в gcc или g ++

...