我正在尝试学习用于跨平台GUI开发的wxwidgets,但是我遇到了一个问题。
当尝试使用mingW32构建wxwidgets时,我遇到了错误。我安装了minGW32和codeblocks 16.1(工作正常),将PATH添加到系统环境。从wxwidgets.org下载了所有可能性。当我尝试使用mingw32从cmd编译wxwidgets库时,他们都不想编译。我进入wxwidgets/build/msw
,键入了几个版本,但提到了一个:
mingw32-make -f makefile.gcc BUILD=release SHARED=1 MONOLITIC=1 UNICODE=1
(尝试没有共享,单一,甚至调试模式)
关于错误:
( __ printf __ ) cannot be found in DLL
(programfiles(x86)\codeblocks\mingw\bin\as.exe)
我有exe,试图从头开始重新安装几次。我正在使用Windows 10.
gcc -c -o gcc_mswudll\wxregex_regcomp.o -O2 -mthreads -DHAVE_W32API_H -DNDEBUG -I..\..\include -I..\..\lib\gcc_dll\mswu -D__WXMSW__ -D_UNICODE -MTgcc_mswudll\wxregex_regcomp.o -MFgcc_mswudll\wxregex_regcomp.o.d -MD -MP ../../src/regex/regcomp.c
makefile.gcc:5778: recipe for target 'gcc_mswudll\wxregex_regcomp.o' failed
mingw32-make: *** [gcc_mswudll\wxregex_regcomp.o] Error 1
更新:
重新安装并删除与此相关的所有内容后,问题已更改。我使用的代码,尝试没有标志,并带有标志,但也只有“-std = gnu ++ 11”:
mingw32-make -f makefile.gcc SHARED=1 UNICODE=1 BUILD=release CXXFLAGS="-fno-keep-inline-dllexport -std=gnu++11"
新的错误代码:
gcc -c -o gcc_mswudll\wxregex_regcomp.o -O2 -mthreads -DHAVE_W32API_H -DNDEBUG -I..\..\include -I..\..\lib\gcc_dll\mswu -D__WXMSW__ -D_UNICODE -MTgcc_mswudll\wxregex_regcomp.o -MFgcc_mswudll\wxregex_regcomp.o.d -MD -MP ../../src/regex/regcomp.c
gcc: error: CreateProcess: No such file or directory
makefile.gcc:5702: recipe for target 'gcc_mswudll\wxregex_regcomp.o' failed
mingw32-make: *** [gcc_mswudll\wxregex_regcomp.o] Error 1
关于我无法使用内置编译器的codeblocks编译wxwidget这一事实的任何信息?没有插件?
答案 0 :(得分:0)
删除所有内容:wxWidgets,Code :: Blocks和MinGW或TDM-GCC
*下载并安装C :: B,不带 MinGW或TDM
*从here下载TDM-GCC。如果您同时安装32& 64位版本我建议你将它们安装在两个不同的文件夹中。
*下载wxWidgets
打开命令窗口。假设你有TDM在" C:\ TDM32"和wxWidgets在" C:\ myWX"。
使用这些命令编译wxWidgets:
PATH=%PATH%;C:\TDM32\bin
cd C:\myWX\build\msw
mingw32-make -f makefile.gcc BUILD=release SHARED=1 MONOLITIC=1 UNICODE=1
这应该构建一个包含大多数wxWidgets的.dll
文件。不是OpenGL。
如果你喜欢几个.dll
不要使用" Monolitic = 1"
如果你不喜欢使用wx&#d; dll,但静态' .a'文件已添加到您的应用中,请勿使用" shared = 1"
如果要在使用调试器时进入wxWidgets代码,请使用" BUILD = debug"
如果你想使用OpenGL" USE_OPENGL = 1"
要使用C ++ 11构建wxWidgets,请使用CXXFLAGS="-std=gnu++11"
对于您自己的应用,您必须告诉C :: B:
*可以找到TDM编译器
*可以找到wxWidgets标头
* wxWidgets库(.dll或.a取决于你是否使用" shared"编译)可以找到