[编译wxWidgets应用时包含路径问题

问题描述 投票:0回答:2

我正在编译wxWidgets的hello world示例:https://docs.wxwidgets.org/trunk/overview_helloworld.html在Windows上使用MingGW-w64及其mingw32-make,而我在使用它提供的预编译Windows二进制文件。

我已经使用成功编译了

g++ -o hello -I/d/local/wxWidgets/lib/gcc810_x64_dll/mswu -I/d/local/wxWidgets/include -L/d/local/wxWidgets/lib/gcc810_x64_dll hello.cpp -lwxbase31u -lwxmsw31u_core

((我运行此git-bash),它也可以正常执行。

但是当我像这样将同一行复制到makefile中时:

all: hello
hello: hello.cpp
    g++ -o hello -I/d/local/wxWidgets/lib/gcc810_x64_dll/mswu -I/d/local/wxWidgets/include -L/d/local/wxWidgets/lib/gcc810_x64_dll hello.cpp -lwxbase31u -lwxmsw31u_core

并在终端中使用mingw32-make.exe运行,发生此错误:

hello.cpp:3:10: fatal error: wx/wxprec.h: No such file or directory
#include <wx/wxprec.h>
         ^~~~~~~~~~~~~
compilation terminated.
mingw32-make: *** [makefile:3: hello] Error 1

我不确定这是否是包含路径问题,因为当我在终端Directlty中运行同一行时,它实际上可以成功编译。

makefile include wxwidgets mingw-w64
2个回答
0
投票

[在尝试使用Makefile时,您是否还在使用“ git bash”终端?

关于Xav'


0
投票

尝试在cmd和git-bash中执行几次后。我发现这可能是路径样式问题。我尝试了以下2种情况下的路径指定:

第一:

g++ -o hello -I/d/local/wxWidgets/lib/gcc810_x64_dll/mswu -I/d/local/wxWidgets/include -L/d/local/wxWidgets/lib/gcc810_x64_dll hello.cpp -lwxbase31u -lwxmsw31u_core

第二:

g++ -o hello -ID:\local\wxWidgets\lib\gcc810_x64_dll\mswu -ID:\local\wxWidgets\include -LD:\local\wxWidgets\lib\gcc810_x64_dll hello.cpp -lwxbase31u -lwxmsw31u_core

Git-bash(直接在终端中执行):仅first案例已成功编译。

Git-bash(使用mingw32-make):仅second情况已成功编译。

cmd(直接在终端中执行):只有second情况成功编译。

cmd(使用mingw32-make):仅second情况已成功编译。

结论:即使在git-bash下,我也认为mingw32-make使用“传统” Windows路径样式(反斜杠)。

更新

我发现mingw32-make也支持前斜线,因此我可以改写为:

g++ -o hello -ID:/local/wxWidgets/lib/gcc810_x64_dll/mswu ...
© www.soinside.com 2019 - 2024. All rights reserved.