如何用gcc编译imgui
源文件
根据build_win32
在回购中的一个例子
@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
中包含的Makefile
,接下来是我添加的源文件,但是由于某些原因不能像预期的那样工作。
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.
为什么我会有这个错误?
发布于 2022-03-19 16:59:31
这个答案更多的是感谢HolyBlackCat帮助我在将repo克隆到我使用的桌面后使用MSYS2
shell编译MINGW64
环境。
export $IMGUI_DIR=C:/Users/test/Desktop/imgui
这使最终命令更短,并给变量IMGUI_DIR
下一个imgui的路径。
我们运行命令
g++ main.cpp $IMGUI_DIR/backends/imgui_impl_dx11.cpp $IMGUI_DIR/backends/imgui_impl_win32.cpp $IMGUI_DIR/imgui*.cpp -I $IMGUI_DIR -I $IMGUI_DIR/backends -ld3d11 -ld3dcompiler -lgdi32 -ldwmapi
哪里
main.cpp
是您的代码(要使用的示例)
$IMGUI_DIR/imgui.cpp
包含imgui
的所有源文件
-I $IMGUI_DIR
在imgui文件夹中包含头文件。
-I $IMGUI_DIR/backends
包括后端头文件
-ld3d11 -ld3dcompiler -lgdi32 -ldwmapi
链接窗口库
imgui
开始工作
https://stackoverflow.com/questions/71539159
复制相似问题