簡體   English   中英

鏈接庫C ++的問題

[英]Issues with linking library C++

我的問題是我無法在當前項目中包含一個庫。 [將netbeans中的庫包含到項目中的方法是通過鏈接器將其鏈接到項目。 但是,在我當前的項目(由離開組織的另一位程序員編寫的項目)中,沒有顯示鏈接器選項。 我已經附上了截圖。 我面臨一個問題,即通過鏈接器鏈接到我當前項目的庫選項沒有出現在IDE中。 有人可以請幫幫我。 我也將非常感謝您。

請指導我如何將庫鏈接到我的項目。 我確實花了很多天這樣做,但是我沒有成功。 屏幕截圖

假設您只對libspatialindex感興趣:

  1. 確保已安裝適當的文件:嘗試locate libspatialindex並查看其安裝位置。 您可以使用* .a,*。so或類似的擴展名。 注意路徑。
  2. 進入您的項目根目錄,即:/ home / keira / netbeans / projects / myproject
  3. 嘗試: gcc -i main.cpp -L/usr/lib/ -lspatialindex -o myfile

將-L / usr / lib替換為您知道該庫所在的實際位置。

cxx鏈接標志通常是帶有-l前綴的庫的名稱。 例如,如果在系統中找到的名稱是libspatialindex.so那么嘗試使用-lspatialindex是一個不錯的選擇。

有一種方法可以在Debian和Ubuntu系統上找到實際的標志,但是我不記得它了。 或者,您可以隨時在Google上閱讀或閱讀圖書館文檔。

當您通常看到帶有未定義函數等的鏈接器錯誤時,這意味着您沒有鏈接,只要您已包含標頭並找到它們即可。

現在,對於Netbeans,我假設可以選擇將額外的參數傳遞給編譯器。 在這種情況下,只要Netbeans知道在哪里可以找到庫和標頭,您就需要-lspatialindex標志。 這就是我在KDevelop和其他IDE中使用的方式。

另外,如果您想要更多的控制和更多的自動化,則可能需要使用cmake之類的工具。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM