2009-08-06 4 views
7

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

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

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

+0

Я не знаю, почему кто-то отказался от этого вопроса. Я вернул его обратно, хотя. Это очень важный вопрос. – Aamir

+5

Теги «os» и «x» не объединяются в «osx» магически. Точно так же, как «The« Rapist »не волшебным образом объединяются, чтобы стать терапевтом. – Thomas

+0

+1 Знаменитая опасность! –

ответ

8

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

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

+2

на os x ldd = otool -L исполняемый файл, если кто-то заботится – Ori

0

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

3

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