2009-08-06 29 views
7

我知道如何使用g ++和所有這些來編譯C++程序。 我的問題是,如果我有一些依賴於各種庫的代碼,我怎樣才能將它編譯成我可以發送給任何人的簡單可執行文件。爲此,我會很高興將它放在os x上。將C++編譯爲「真實」程序

我想知道如何編譯一個「真實」的程序,而不僅僅是一個我可以在本地運行的可執行文件。 我試過Google搜索,但沒有發現太多。

我必須使用安裝軟件嗎? 我知道在Windows中,你可以做一些簡單的.exe的東西,使用常見的DLL文件。

+0

我不知道爲什麼有人低估了這個問題。儘管我已經回覆了它。似乎是一個非常有效的問題。 – Aamir 2009-08-06 06:07:23

+5

標籤「os」和「x」不會神奇地聯合爲「osx」。就像「The」「Rapist」不會神奇地聯合起來成爲一名治療師。 – Thomas 2009-08-06 06:26:00

+0

+1名人危險! – 2009-08-06 07:56:12

回答

8

你在尋找「靜態鏈接」。這會將所有需要的代碼從庫中導入到可執行文件中。請注意,可執行文件會變大。如果您使用的是標準庫,則應在標準操作系統安裝中提供。

你應該嘗試g ++的「-static」標誌。 運行「ldd your_executable_name」應顯示您的可執行文件使用(動態鏈接)的所有庫。

+2

on os x ldd = otool -L可執行文件,如果有人在意 – Ori 2009-08-06 07:25:35

0

可以在海灣合作委員會或g ++

3

使用-static或-s選項靜態鏈接既然你正在談論的Mac OS X,你可能要發財了。 Qt軟件有一個非常有用的deployment guide開始這種活動。