我和一个朋友正在使用 Qt Creator 和 Boost 来构建游戏引擎。到目前为止,我们的想法是引擎将成为一个共享库,我们可以使用测试可执行文件运行它,这将变成我们最终想要制作的游戏。
问题主要是头文件。我想为 Qt Creator 找到某种方法,以便能够在构建引擎的最新版本甚至添加它们时立即识别头文件。起初,我在想一个 Python 脚本,它在构建引擎后作为 Qt Creator 中的构建步骤执行,只需将头文件复制到系统目录(/usr/include
例如 - 如果在 *nix 系统上运行),其中然后,IDE 将在将引擎与测试可执行文件链接时识别头文件,并且我们还将拥有完整的自动完成支持。
当然会使用环境变量,虽然我更喜欢在 Linux 中开发,但我的朋友更喜欢 Windows,所以我们同意根据各自的平台偏好来处理开发。
虽然这似乎是一个很好的解决方案,但我认为这个 Python 脚本想法可能已经过时了。有一个更好的方法吗?
更新
从建议的 Qmake 脚本,我最终得到了这个错误。
cp -f "/home/amsterdam/Programming/atlas/Engine/AtlasEngine/"AtlasEngine_global.h "/"
cp: cannot create regular file `/AtlasEngine_global.h': Permission denied
make: Leaving directory `/home/amsterdam/Programming/atlas/Engine/AtlasEngine__GCC__Linux__Debug'
make: *** [libAtlasEngine.so.1.0.0] Error 1
15:20:52: The process "/usr/bin/make" exited with code 2.
Error while building project AtlasEngine (target: Desktop)
When executing build step 'Make'
我的调整如下:
# Copy over build artifacts
SRCDIR = $$ATLAS_PROJ_ROOT
DESTDIR = $$ATLAS_INCLUDE
# Look for header files there too
INCLUDEPATH += $$SRCDIR
# Dependencies: mylib. Only specify the libs you depend on.
# Leave out for building a shared library without dependencies.
#win32:LIBS += $$quote($$SRCDIR/mylib.dll)
# unix:LIBS += $$quote(-L$$SRCDIR) -lmylib
DDIR = \"$$SRCDIR/\" #<--DEFAULTS
SDIR = \"$$IN_PWD/\"
# Replace slashes in paths with backslashes for Windows
win32:file ~= s,/,\\,g
win32:DDIR ~= s,/,\\,g
win32:SDIR ~= s,/,\\,g
for(file, HEADERS) {
QMAKE_POST_LINK += $$QMAKE_COPY $$quote($${SDIR}$${file}) $$quote($$DDIR) $$escape_expand(\\n\\t)
}