2009-04-15 50 views
1

我正在自定義通過cmake構建的qgis源代碼。Cmake未定義的引用鏈接錯誤

它有一個包含許多子目錄的源代碼樹(子目錄也在其中)。

整個源代碼樹分爲核心模塊,有GIS核心組件,gui負責處理主應用程序(包含main.cpp)和其他模塊的GUI應用程序。

問題是,我堅持一個需求,我需要在不同的模塊中訪問靜態類成員。準確地說是Gui模塊中QgisApp類的一些成員。

因此正常包含的qgisapp.h在一個gui模塊的.cpp中給了我一個未定義的引用,我想訪問該mamber .. 後來我在CMakeLists.txt文件中包含了.h和.cpp文件它位於Gui模塊的根目錄中,並且再次運行cmake以使Makefile具有適當的包含... 但是如果未定義引用了很多的話,那實際上會增加數量(也許是因爲我添加到CMakeLists中的.h和.cpp .txt本身包含其他.h和.cpp,它們在應用程序模塊自己的CMakeLists.txt中有引用)。

那麼如何在一些其他模塊中使用某個模塊的類的成員,這些模塊正在使用不同的CMakeLists.txt集放入其各自的根目錄中?

這個問題沒有具體涉及到QGIS,但可以與任何源代碼樹是類似於基本QGIS has..So它是一個與cmake相關問題遇到..

希望我能clearify我問題。

幫助將不勝感激。

謝謝。

回答

1

target_link_libraries應該做你正在尋找的東西。如果這不起作用,請嘗試發佈一些示例CMake代碼?

相關問題