簡體   English   中英

通過Cygwin使用wxWidgets鏈接庫

[英]Library linking using wxWidgets through Cygwin

我一直在嘗試讓wxWidgets在Cygwin上工作。 到目前為止,我已經成功使用了cygwin安裝程序提供的mingw編譯器。
構建似乎工作正常。 我使用的配置消息是:
configure --host=i686-w64-mingw32 --build=i686-pc-cygwin --enable-static --disable-shared
之后,我進行了make make make安裝,沒有任何錯誤。

接下來,我從教程中獲取一個示例並運行:
i686-w64-mingw32-g++ -c -o hello_world.o hello_world.cpp CXX_FLAGS
i686-w64-mingw32-g++ -oa hello_world.o CXX_FLAGS LIBS
其中CXX_FLAGS和LIBS是從wx-config -cxxflagswx-config --libs 這工作正常,但是當我嘗試運行可執行文件時,出現此錯誤:
C:/Users/sam/Documents/cpp/wxwidgets_tutorial/a.exe: error while loading shared libraries: ?: cannot open shared object file: No such file or directory

我構建的庫應該是靜態的,因此我不確定該如何處理。 任何幫助是極大的贊賞!


更多信息:

wx-config --cxxflags提供輸出:
-I/usr/local/lib/wx/include/i686-w64-mingw32-msw-unicode-static-3.0 -I/usr/local/include/wx-3.0 -D_FILE_OFFSET_BITS=64 -D__WXMSW__ -mthreads

wx-config --libs給出輸出:
-L/usr/local/lib -Wl,--subsystem,windows -mwindows /usr/local/lib/libwx_mswu_xrc-3.0-i686-w64-mingw32.a /usr/local/lib/libwx_mswu_webview-3.0-i686-w64-mingw32.a /usr/local/lib/libwx_mswu_qa-3.0-i686-w64-mingw32.a /usr/local/lib/libwx_baseu_net-3.0-i686-w64-mingw32.a /usr/local/lib/libwx_mswu_html-3.0-i686-w64-mingw32.a /usr/local/lib/libwx_mswu_adv-3.0-i686-w64-mingw32.a /usr/local/lib/libwx_mswu_core-3.0-i686-w64-mingw32.a /usr/local/lib/libwx_baseu_xml-3.0-i686-w64-mingw32.a /usr/local/lib/libwx_baseu-3.0-i686-w64-mingw32.a -lpng -ljpeg -ltiff -lexpat -lwxregexu-3.0-i686-w64-mingw32 -lz -lrpcrt4 -loleaut32 -lole32 -luuid -lwinspool -lwinmm -lshell32 -lcomctl32 -lcomdlg32 -ladvapi32 -lwsock32 -lgdi32

ls / usr / local / lib:
libwx_baseu_net-3.0-i686-w64-mingw32.a libwx_baseu_xml-3.0-i686-w64-mingw32.a libwx_baseu-3.0-i686-w64-mingw32.a libwx_mswu_adv-3.0-i686-w64-mingw32.a libwx_mswu_aui-3.0-i686-w64-mingw32.a libwx_mswu_core-3.0-i686-w64-mingw32.a libwx_mswu_gl-3.0-i686-w64-mingw32.a libwx_mswu_html-3.0-i686-w64-mingw32.a libwx_mswu_media-3.0-i686-w64-mingw32.a libwx_mswu_propgrid-3.0-i686-w64-mingw32.a libwx_mswu_qa-3.0-i686-w64-mingw32.a libwx_mswu_ribbon-3.0-i686-w64-mingw32.a libwx_mswu_richtext-3.0-i686-w64-mingw32.a libwx_mswu_stc-3.0-i686-w64-mingw32.a libwx_mswu_webview-3.0-i686-w64-mingw32.a libwx_mswu_xrc-3.0-i686-w64-mingw32.a libwxregexu-3.0-i686-w64-mingw32.a libwxscintilla-3.0-i686-w64-mingw32.a wx

編輯:

遵循VZ的建議,我將/usr/i686-w64-mingw32/sys-root/mingw/bin到我的路徑中...它可以編譯!
但是,在運行時,該程序不會打開任何窗口,只會立即退出。 這仍然是圖書館問題嗎?

您需要從/usr/i686-w64-mingw32/sys-root/mingw/bin復制所需的DLL(至少libstdc++-6.dlllibgcc_s_sjlj-1.dll )到PATH或應用程序目錄中的目錄(或將此目錄本身添加到您的PATH中)。

您可以使用cygcheck或(本機) 依賴項遍歷工具來查找實際缺少的DLL。

暫無
暫無

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

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