2017-04-03 105 views
0

我在Xubuntu機器上。我已經下載並編譯了源代碼,進行了make install。wxWidgets包含全部在同一文件夾中的文件?

我試圖創建一個簡單的wxFrame類,但是當我包含<wx-3.0/wx/frame.h>時,它說Can't resolve type wxFrame。當我看看frame.h時,它包含對<wx/toplevel.h>的引用。 frame.htoplevel.h都位於相同的文件夾中。爲什麼編譯將include文件全部放在同一個文件夾中,但文件路徑不同?

我使用CLion IDE,include/lib路徑由cmake的FIND_PACKAGE()設置。

+0

不確定您的IDE的具體情況,但一般情況下您可能想要使用wxlibs或單獨包含庫(取決於編譯庫的方式)。然後您可能需要將wxWidgets的包含文件夾包含到包含路徑中。最後,您還需要包含系統lib \ vc_dll \ mswu和lib \ vc_dll \ mswud下的安裝配置。 – macroland

+1

還沒有在wx上工作。但似乎你正在設置包含路徑錯誤。您應該將'what/ever/path/wx/installed/wx-3.0'設置爲include路徑,而'#include '代替。 –

回答

0

@ShrimpCrackers,

一般建議通過複製樣本代碼的一個進入你的項目,開始你的項目,然後設置你的項目屬性的wx-config --cxxflagswx-config --libs輸出。

因此,您應該做的是將wxWidgets/samples/minimal/minimal.cpp複製到項目所在的目錄,修復項目屬性並重新編譯。

順便說一句,你不必做make install。您可能想要在一臺機器上編譯庫的調試版本和發行版本,這會破壞安裝目的。您只需使用庫的編譯版本

+0

謝謝。一些東西。 1)我將如何使用cmake使用wx-config?以下鏈接似乎暗示wxconfig不能與cmake一起使用。 http://stackoverflow.com/questions/31092593/how-can-i-use-cmake-to-both-build-wxwidgets-on-demand-and-link-with-it 2)我應該鏈接什麼庫反對? usr/local/lib有42個.so文件,以libwx開頭。 3)我仍然不明白爲什麼同一目錄中的兩個(和更多)頭文件具有#include路徑,其中一個文件夾期望深度爲一個文件夾。例如,fileA.h和fileB.h位於同一位置,但fileA.h引用fileB.h作爲wx/fileB.h。 – ShrimpCrackers

+0

@ShrimpCrackers,最好的建議 - 不要使用CMake。 ;-) 1.我確信CMake生成的Makefile將使用適當的參數調用wx-config。是的 - 您將需要使用來自第一個答案的'find_package()'調用來鏈接問題來查找並正確解析wxWidgets庫。 2.不幸的是,我無法幫助你 - 你比其他人更瞭解該軟件。最小集是 - 基礎庫和核心庫。試試這個。如果這會給你鏈接錯誤,你會知道你錯過了一個庫。然後回到這裏,我們會盡力解決它。 – Igor

+0

@ShrimpCrackers,3.我不認爲這是正確的。你可以參考你看到的這段代碼嗎?只需用該片段編輯OP即可。也爲1 - 使用IDE並直接設置項目屬性。我有Anjuta 3,它有一個與wxWidgets一起工作的模板。 – Igor

相關問題