我正在編寫一個取決於Poco c++ library的軟件。我可以設法在Ubuntu和Windows上編譯庫,但只能靜態編譯。這很好,因爲我想靜態使用它。然而,當我嘗試編譯所依賴的庫程序,我得到類似這樣(自由翻譯)錯誤:將靜態庫鏈接到gnu g ++,沒有這樣的文件或目錄
Poco/RegularExpression.h: No such file or directory.
然而,當我也明確告訴編譯器到哪裏尋找庫的頭與-I開關文件我碰到下面的錯誤,而不是(但也許20-30類似的路線):
Undefined reference to (pthread_mutex...)
我已經嘗試了很多不同的組合,無論是直接與G ++,利用makefile文件。 我應該包括庫的頭文件的路徑,或者我不知道如何成功地編譯庫正確? 如果我應該包含路徑,我該如何擺脫「未定義的引用」錯誤?
我很新的C++編程,所以忍受着我。 謝謝,羅伯特
也許嘗試加入'-lpthread'。看起來像在鏈接階段缺少該庫。 –
謝謝!它的工作,編譯一個簡單的測試。但是,這是正確的方式來鏈接和包含標題? – roggan87
不知道你的意思是「正確的方式」,但是,一般來說,你必須指定包含所有標題的包含目錄,如'',並且必須鏈接到所有正在使用的庫(或您正在使用的其他庫正在遞歸使用)。 –