我是新手,你能给我一些建议吗? 所以我想用SDL和qt制作一个简单的多平台应用程序。
问题是:
on windows_ #include <SDL2/SDL_main.h>
on mac_ #include <SDL_main.h>
导致windows上所有库中的“include”文件夹,在mac里面/ Library / Frameworks中 所以我想知道如何更好地制作包括...我是否需要在所有平台上制作一个视图或存在更好的练习?我也不会为此使用cMake。
实施例 MAC:
*.Pro file
INCLUDEPATH += /Library/Frameworks/SDL2.framework/Headers
QMAKE_LFLAGS += -F/Library/Frameworks/
LIBS += -framework SDL2
#include <SDL.h>
视窗:
*.Pro file
INCLUDEPATH += C:\SDL2-2.0.1\i686-w64-mingw32\include
LIBS += -L"C:\SDL2-2.0.1\i686-w64-ming32\lib" \
-lmingw32\
-lSDL2main\
-lSDL2
#include <SDL2/SDL2.h>
那么如何更好地使main.cpp在所有平台上都是一条路径,或者存在类似于win32路径的东西?
答案 0 :(得分:2)
在理想的世界中,您应该使用相同的代码,而构建系统应该使构建系统相关的数据正常工作。
您可以在qmake项目文件中使用以下范围:
mac: INCLUDEPATH += mac-specific-include-path
unix: INCLUDEPATH += unix-specific-include-path
win32: INCLUDEPATH += win32-specific-include-path
等...
源代码将包含这样的头文件,然后:
#include <SDL_main.h>
我建议省略模块前缀,因为这可能会隐藏构建系统中的错误。话虽如此,在某些项目中,无论对某人看起来更合理,都需要遵循惯例。
这将确保如果您将代码切换到另一个平台,则需要使代码更复杂,您可能经常阅读并修改为维护者。
当然,如果你切换到cmake
或QBS
之类的新构建系统,你还需要重新实现这个逻辑的缺点,但我仍然建议在构建系统层解决这些问题因为好的源代码很重要。