在c/C++中,我們使用-I指定頭文件位置和-L路徑來指定庫路徑。我有一個特徵庫和增強庫,所以我做的是我將這些庫複製到/ usr/include目錄在linux和我的程序的源文件中,我只是使用這些庫的頭文件。我的問題是這些庫的源文件如何與我的程序源文件鏈接,我只使用這些庫的頭文件?關於在C++中使用外部庫的困惑
0
A
回答
1
您對源代碼和目標代碼也有點困惑。通常,庫將包含編譯的對象代碼,但是C++模板擴展需要某種類型的源代碼或源代碼來執行模板實例化。
但是,底線是包含庫的語法取決於您使用的編譯器/鏈接器組合。你需要說明在有人可以完全回答這個問題之前。
目錄「/ usr/include」被認爲是特殊的,是您正在使用的操作系統或平臺的一部分,因此您不應該將文件複製到其中。
請注意,構造「c/C++」不是很有意義 - 兩種語言C和C++具有不同的語法和不同的鏈接模型。最好說出你的意思。
2
這取決於您使用的庫。 Eigen3只是標題:不需要鏈接。隨着升壓,這取決於。大多數部分只有標題,但有些庫可能需要鏈接。
關於複製到/usr/include
。這聽起來很可怕。使用發行版的軟件包管理器來獲取您需要的一系列庫。您幾乎不應將自己的文件直接放入/usr/{include|lib...}
,而更喜歡/usr/local/{include|lib...}
。
相關問題
- 1. 關於void main()在C中的困惑
- 2. 關於如何在C中使用返回值的困惑#
- 3. 關於如何在C#中使用JSON的困惑
- 4. 關於外鍵約束困惑
- 5. 關於使用類的困惑
- 6. 關於使用realm.allObjects()的困惑
- 7. 關於使用索引的困惑
- 8. 關於C#屬性的困惑
- 9. 關於在Java中克隆的困惑
- 10. 關於window.onload在javascript中的困惑
- 11. Task.Factory.StartNew - 關於池的困惑
- 12. 關於MutationObserver的困惑
- 13. 關於objc_getClass的困惑
- 14. 關於DBus的困惑
- 15. 關於AverageTimer32 PerformanceCounter的困惑
- 16. 關於Thread.Join的困惑
- 17. 關於MusicService的困惑
- 18. 關於結構的困惑
- 19. 關於memset的困惑
- 20. 關於FTP的困惑
- 21. 關於Access Specifier的困惑
- 22. 關於線程的困惑
- 23. 關於Kleene星的困惑
- 24. 關於PhoneGap/Cordova的困惑
- 25. 關於MKOverlayView的困惑
- 26. 關於[NSDate date]的困惑
- 27. 關於流的困惑
- 28. 關於GAC的困惑
- 29. 關於CTE的困惑
- 30. 關於URLMapping的困惑
取決於您使用的內容......如果您只使用這些庫中的模板,例如頭文件通常包含所有內容,則可能不需要鏈接。 – Macmade
得到它感謝夥計:) – user2481909