我多年来一直将Eclipse用于PHP,Python,JavaScript和lua。但是,我是C ++和Eclipse CDT的新手。我对C ++语法和约定已经有了足够的把握,因此我可以继续介绍我来到C ++(即GUI)的原因。最初,我尝试了Code :: Blocks,这似乎更简单(我喜欢向导!),但是我确实更喜欢具有git集成的IDE,并且我意识到C :: B在设法使编译工作之前没有该功能。因此,回到Eclipse。
到目前为止,我已经完成了以下操作:
不幸的是,这就是我被困住的地方。有很多教程和论坛帖子,但是我遇到以下一个或多个问题:
或者,我会推荐另一个GUI工具箱,该工具箱具有可访问的说明,以使其自身的当前版本与Eclipse的当前版本一起使用。
我将展示如何使用MinGW和Eclipse编译wxWidgets最小样本。首先,我强烈建议您同时构建wxWidgets库的调试版本和发行版本。这些指示将假定是这种情况。我不是蚀专家,所以我不能保证这些都是最好的方向。这些指示确实对我有用,但是欢迎进行更正和改进。
这里有很多很多步骤。但是,如果您得到的工作项目样本最少,则可以复制该项目并更改代码文件以将其用于其他项目。
在执行其他任何操作之前,请在eclipse中定义WXWIN
环境变量(如果尚未定义)。从菜单中选择Window-> Preferences-> C / C ++-> Build-> Environment,然后按添加按钮以添加变量。
构建库随附的最小样本的最简单方法是使用命令行。为此,只需转到WXWIN \ samples \ minimal文件夹,然后输入用于构建库的命令即可。由于上面给出的命令是mingw32-make -f makefile.gcc SHARED=0 UNICODE=1 MONOLITHIC=0 BUILD=release
,因此如果在Shell中执行以下命令,则会导致此结果:
windres --use-temp-file -i../../samples/sample.rc -ogcc_mswu\minimal_sample_rc.o --define __WXMSW__ --define NDEBUG --define _UNICODE --include-dir .\..\..\lib\gcc_lib\mswu --include-dir ./../../include --include-dir . --include-dir ./../../samples --define NOPCH
g++ -c -o gcc_mswu\minimal_minimal.o -O2 -mthreads -DHAVE_W32API_H -D__WXMSW__ -DNDEBUG -D_UNICODE -I.\..\..\lib\gcc_lib\mswu -I.\..\..\include -W -Wall -I. -I.\..\..\samples -DNOPCH -Wno-ctor-dtor-privacy -MTgcc_mswu\minimal_minimal.o -MFgcc_mswu\minimal_minimal.o.d -MD -MP minimal.cpp
g++ -o gcc_mswu\minimal.exe @gcc_mswu\minimal.exe.rsp -mthreads -L.\..\..\lib\gcc_lib -Wl,--subsystem,windows -mwindows -lwxmsw31u_core -lwxbase31u -lwxtiff -lwxjpeg -lwxpng -lwxzlib -lwxregexu -lwxexpat -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme
如果我们用build=debug
执行相同的命令,我们将得到相似的命令,只是有一些区别:
windres --use-temp-file -i../../samples/sample.rc -ogcc_mswud\minimal_sample_rc.o --define __WXMSW__ --define _UNICODE --include-dir .\..\..\lib\gcc_lib\mswud --include-dir ./../../include --include-dir . --include-dir ./../../samples --define NOPCH
g++ -c -o gcc_mswud\minimal_minimal.o -g -O0 -mthreads -DHAVE_W32API_H -D__WXMSW__ -D_UNICODE -I.\..\..\lib\gcc_lib\mswud -I.\..\..\include -W -Wall -I. -I.\..\..\samples -DNOPCH -Wno-ctor-dtor-privacy -MTgcc_mswud\minimal_minimal.o -MFgcc_mswud\minimal_minimal.o.d -MD -MP minimal.cpp
g++ -o gcc_mswud\minimal.exe @gcc_mswud\minimal.exe.rsp -g -mthreads -L.\..\..\lib\gcc_lib -Wl,--subsystem,windows -mwindows -lwxmsw31ud_core -lwxbase31ud -lwxtiffd -lwxjpegd -lwxpngd -lwxzlibd -lwxregexud -lwxexpatd -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme
要使用eclipse构建示例,我们希望使其执行大致相同的命令,这考虑到调试和发布配置之间的细微差异。选择文件->新建-> C / C ++项目-> C ++托管版本。输入项目名称,选择MinGW GCC,确保项目类型为“可执行/空项目”,然后单击“完成”按钮。
现在将文件添加到项目中。您可以
两种方法中,现在项目中都应该有一个名为minimal.cpp的文件。要构建此文件,需要更改几个设置。从菜单中,选择项目->属性-> C / C ++构建->设置
对于GCC C ++编译器:
对于MinGW C ++链接器:
wxmsw31ud_core
,wxbase31ud
,wxtiffd
,wxjpegd
,wxpngd
,wxzlibd
,wxregexud
和wxexpatd
wxmsw31u_core
,wxbase31u
,wxtiff
,wxjpeg
,wxpng
,wxzlib
,wxregexu
和wxexpat
kernel32
,user32
,gdi32
,comdlg32
,winspool
,winmm
,shell32
,shlwapi
,comctl32
,ole32
,oleaut32
,uuid
,rpcrt4
,advapi32
,version
,wsock32
,wininet
,oleacc
和uxtheme
。${WXWIN}\lib\gcc_lib
-mthreads -mwindows
--subsystem=windows
。-g
添加到现有内容。现在将同时构建调试和发布配置,但是该应用程序尚未完成。在命令提示符下构建最小应用程序的第一件事是
windres --use-temp-file ...
根据this link,eclipse仅不支持构建资源文件,因此我们需要手动处理。
现在返回项目->属性-> C / C ++构建->设置->构建步骤。
windres --use-temp-file -i"${ProjDirPath}/sample.rc" -o"${CWD}\minimal_sample_rc.o" --define __WXMSW__ --define _UNICODE --include-dir ${WXWIN}\lib\gcc_lib\mswud --include-dir ${WXWIN}\include --define NOPCH
windres --use-temp-file -i"${ProjDirPath}\sample.rc" -o${CWD}\minimal_sample_rc.o --define __WXMSW__ --define NDEBUG --define _UNICODE --include-dir ${WXWIN}\lib\gcc_lib\mswu --include-dir ${WXWIN}\include --define NOPCH
下一次切换回工具设置标签:
这两个额外的步骤将使eclipse编译资源文件并将资源链接到最终的可执行文件中。
所以您从一个全新的C ++项目开始。
然后您在其中添加源代码以获取最少的示例。
接下来打开项目属性,打开“ C ++ Build”->“设置”,然后在“ C ++ Compiler”->“ Directory”下,添加所有包含目录。
然后转到“ C ++链接器”->“库”,然后添加库和它们的路径。
让我们知道您是否还有问题吗?