wxwidgets 编译记录

1:操作
D:\ZigbeeProj\zigbeesrc\pc\wxwidgets\build\msw>set PATH=%PATH%;C:\MinGW\bin

D:\ZigbeeProj\zigbeesrc\pc\wxwidgets\build\msw>mingw32-make.exe -f makefile.gcc

2: 错误信息
if not exist gcc_mswud mkdir gcc_mswud
process_begin: CreateProcess(NULL, -c “if not exist gcc_mswud mkdir gcc_mswud”,
…) failed.
make (e=2): 系统找不到指定的文件。
makefile.gcc:5078: recipe for target ‘gcc_mswud’ failed
mingw32-make.exe: [gcc_mswud] Error 2 (ignored)
if not exist ….\lib\gcc_lib mkdir ….\lib\gcc_lib
process_begin: CreateProcess(NULL, -c “if not exist ….\lib\gcc_lib mkdir …
.\lib\gcc_lib”, …) failed.
make (e=2): 系统找不到指定的文件。
makefile.gcc:5628: recipe for target ‘….\lib\gcc_lib’ failed
mingw32-make.exe: * [….\lib\gcc_lib] Error 2
3: 原因
编译环境不干净,在声明PATH环境变量时,是叠加现有的环境变量,估计与其他编译工具相互影响造成;
4: 解决办法
仅仅只设置minGW的环境变量:set PATH=C:\MinGW\bin

1: 编译过程中错误信息:
C:/MinGW/msys/1.0/home/Wayne/src/wxWidgets-2.9.5/src/msw/treectrl.cpp:
In member function ‘virtual bool wxTreeCtrl::MSWOnNotify(int, WXLPARAM,
WXLPARAM*)’:
C:/MinGW/msys/1.0/home/Wayne/src/wxWidgets-2.9.5/src/msw/treectrl.cpp:3280:17:
error: ‘NMTVDISPINFOWW’ was not declared in this scope
TV_DISPINFO info = (TV_DISPINFO )lParam;

2: 解决办法:
打开文件:C:\MinGW\include\commctrl.h
将#define TV_DISPINFO __AW(NMTVDISPINFO) 宏用 #define TV_DISPINFO NMTVDISPINFO 替换.

1.错误信息类似于如下的结果:
if not exist ../../lib/gcc_lib/mswud/wx mkdir ../../lib/gcc_lib/mswud/wx
process_begin: CreateProcess(NULL, -c “if not exist ../../lib/gcc_lib/mswud/wx mkdir ../../lib/gcc_lib/mswud/wx”, …) failed.
原因:编译出错的原因是由于安装了MSYS的缘故。
产生错误的原因是因为安装了MSYS后,利用Make命令会首先执行MSYS中的SHELL命令,从而会导致编译错误,对于这种情况,可以修改 ( W X ) / b u i l d / m s w m a k e f i l e . g c c 使 C M D m a k e f i l e . g c c ( ) : m a k e f i l e . g c c S H E L L := (COMSPEC)
makefile.gcc修改后: SHELL := C:\WINDOWS\system32\CMD.exe (该路径为实际的CMD.exe的路径)
2.错误ld.exe停止工作
http://www.cnblogs.com/aozima/archive/2011/10/03/2198653.html

转载的:
http://kuafu80.blog.163.com/blog/static/1226471802013913103055757/

猜你喜欢

转载自blog.csdn.net/wowocpp/article/details/80721624