如何用gcc编译imgui
源文件
根据build_win32
在一个例子中的repo
@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
@set OUT_DIR=Debug
@set OUT_EXE=example_win32_directx11
@set INCLUDES=/I..\.. /I..\..\backends /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" /I "%DXSDK_DIR%Include"
@set SOURCES=main.cpp ..\..\backends\imgui_impl_dx11.cpp ..\..\backends\imgui_impl_win32.cpp ..\..\imgui*.cpp
@set LIBS=/LIBPATH:"%DXSDK_DIR%/Lib/x86" d3d11.lib d3dcompiler.lib
mkdir %OUT_DIR%
cl /nologo /Zi /MD %INCLUDES% /D UNICODE /D _UNICODE %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS%
前三行并不重要,因为它们定义了输出目录和输出可执行文件,下一行是我在Makefile
中包含的INCLUDES
,下一行是我也添加的源文件,但由于某种原因没有按预期工作
CC = g++
FILES = main.cpp C:\\Users\\test\\Desktop\\imgui\\backend\\imgui_impl_dx11.cpp C:\\Users\\test\\Desktop\\imgui\\backend\\imgui_impl_win32.cpp C:\\Users\\test\\Desktop\\imgui\\backend\\imgui*.cpp
INCLUDES = -I C:\\Users\\test\\Desktop\\my-project\\Include -ld3d11 -ld3dcompiler
build: $(FILES)
$(CC) $(FILES) $(INCLUDES)
Includes
文件夹包含文件夹backend
中的所有头文件
这是运行命令make
时得到的结果
make: *** No rule to make target 'C:\\Users\\test\\Desktop\\imgui\\backend\\imgui_impl_dx11.cpp', needed by 'build'. Stop.
为什么我会得到这个错误?
2条答案
按热度按时间4zcjmb1e1#
这个答案更多的是感谢HolyBlackCat帮助我在将存储库克隆到我使用的桌面后使用
MSYS2
shell在MINGW64
环境中进行编译这使得最后一个命令更短,并为变量
IMGUI_DIR
提供了imgui repo next的路径我们运行命令
其中
main.cpp
是您的代码(要使用的示例)$IMGUI_DIR/imgui.cpp
包括imgui
的所有源文件-I $IMGUI_DIR
包括imgui文件夹中的头文件-I $IMGUI_DIR/backends
包括后端头文件-ld3d11 -ld3dcompiler -lgdi32 -ldwmapi
链接所需的Windows库imgui
工作eivnm1vs2#
netrunner所说的在将命令更改为include之后有效
$IMGUI_DIR可以替换为任何示例或您自己的实现的main.cpp的路径