我看到了很多关于此事的帖子,但没有人帮我... 我的问题是我想使用静态构建,所以我可以在没有其他文件的情况下执行我的项目的编译exe ...
我使用以下命令编译了wxWidgets:
mingw32-make -f makefile.gcc -j4 SHARED=0 MONOLITHIC=1 UNICODE=1 BUILD=release clean
mingw32-make -f makefile.gcc -j4 SHARED=0 MONOLITHIC=1 UNICODE=1 BUILD=release
但是当我在CodeBlocks中使用构建时,我得到了很多未定义的引用错误
链接完整的错误列表:http://pastebin.com/2Ccs9nDu
在Codeblocks中,它使用以下命令进行编译:
mingw32-g++.exe -LD:\wxWidgets-3.0.2\lib\gcc_lib -o bin\Release\Test.exe obj\Release\TestApp.o obj\Release\Test.o obj\Release\resource.res -s -mthreads -lwxmsw30u -lwxpng -lwxjpeg -lwxtiff -lwxzlib -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lcomctl32 -lwsock32 -lodbc32 -mwindows
这些是喜欢的libarys:
<Add option="-mthreads" />
<Add library="libkernel32.a" />
<Add library="libuser32.a" />
<Add library="libgdi32.a" />
<Add library="libwinspool.a" />
<Add library="libcomdlg32.a" />
<Add library="libadvapi32.a" />
<Add library="libshell32.a" />
<Add library="libole32.a" />
<Add library="liboleaut32.a" />
<Add library="libuuid.a" />
<Add library="libcomctl32.a" />
<Add library="libwsock32.a" />
<Add library="libodbc32.a" />
任何人都可以帮帮我吗?我非常关注它,但我仍然不知道如何在Codeblocks中解决这个问题。 对不起,如果我错过了一些重要的部分..我很遗憾不太了解这个话题,因为我只是开始使用它。
PS: 非静态构建对我有用,只有静态会造成麻烦......
PPS: 我不认为这是一个重复的帖子...我没有从链接页面得到解决方案...请再次打开这篇文章..
编辑: 这是wxWidgets库的链接器:
<Linker>
<Add option="-s" />
<Add library="libwxmsw30u.a" />
<Add library="libwxpng.a" />
<Add library="libwxjpeg.a" />
<Add library="libwxtiff.a" />
<Add library="libwxzlib.a" />
<Add directory="D:/Project/wxWidgets-3.0.2/lib/gcc_lib" />
</Linker>
编辑: 这就是Code :: Blocks编译我的Project
的方式mingw32-g++.exe -LD:\Project\wxWidgets-3.0.2\lib\gcc_lib -o bin\Release\static_Test.exe
obj\Release\static_TestApp.o obj\Release\static_TestMain.o obj\Release\resource.res
-s -mthreads -lwxmsw30u_core -lwxbase30u -lwxpng -lwxzlib -lkernel32 -luser32
-lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lcomctl32
-lwsock32 -lodbc32 -mwindows
答案 0 :(得分:0)
您需要告诉链接器在构建它的文件夹中搜索静态库 - 例如...... \ wxWidgets-3.0.1 \ gcc_static_lib。
所以改变
mingw32-g++.exe -LD:\wxWidgets-3.0.2\wx\lib\gcc_lib
到
mingw32-g++.exe -LD:\wxWidgets-3.0.2\wx\gcc_static_lib
最简单的方法是设置一个全局变量。你知道如何使用这个代码:: blocks功能吗?
答案 1 :(得分:0)
g++ `wx-config --cxxflags` -I/usr/lib/x86_64-linux-gnu/wx/include/gtk2-unicode-3.0/ -I/usr/include/wx-3.0 -D_File_OFFSET_BITS=64 -DWXUSINGDLL -D__WXGTK__ -pthread -Wall -g -c mycode.cpp -o mycode.o `wx-config --libs`
在linux中使用此控制台命令编译代码将mycode.cpp更改为主文件,将mycode.o编译为输出文件 对于windows有点不同和更长,如果你编译示例项目,code :: blocks将显示windows的替代命令。