2010-10-20 50 views
8

在Visual C++中,可以通過執行#pragma comment (lib, "libname.lib")鏈接到代碼本身的庫。在g ++中有類似的可能嗎?使用g ++與一個附註連接

+0

請問爲什麼要這麼做? – 2010-10-20 01:17:49

+2

@Robert:基於#if定義的鏈接(...);更容易包含代碼而無需編輯Makefiles等。 – 2010-10-20 01:25:09

+2

@贊恩Lynx:這是真的,但前提是你使用的是惱人的構建系統。我會推薦使用CMake,因爲那時你只需要在CMakeLists.txt文件中添加一行,也許兩行來完成同樣的事情。這就是我所做的。你有任何構建工具的限制? – 2010-10-20 01:37:59

回答

3

Boost Config庫對自動鏈接有一定的支持,對特定的編譯器使用相關的編譯器特定的代碼。然而,文檔注意GCC工具鏈doesn't support autolinking

自動鏈接

大多數Windows編譯器和鏈接 有所謂的「自動鏈接支持,」 免去了第二個挑戰。 Boost頭文件中的特殊代碼 檢測到您的編譯器選項並使用 該信息將 的名稱正確的庫編碼到您的對象 文件中;鏈接器從您告訴它搜索的目錄 中選擇名稱爲 的庫。

GCC工具鏈(Cygwin和MinGW) 是值得注意的例外; GCC用戶 應該參考 的鏈接 指令,爲Unix變體操作系統 使用適當的命令行選項 。