我最近在我的项目中开始使用cmake,并设法使用CMAKE包含SDL。
现在我添加了一个简单的类文件,该文件包含在我的main.cpp
再次配置/生成项目后,我的源文件看起来像这样:
我的设置
的CMakeLists.txt
cmake_minimum_required (VERSION 3.3.2)
project (2dgameengine)
set(MAIN_FILE
src/main.cpp
)
add_executable(2dgameengine
${MAIN_FILE}
)
target_sources(2dgameengine PUBLIC ${EXTRA_FILE})
set (SDL2_INCLUDE_DIR libs/sdl2/include)
set (SDL2_SOURCE_DIR libs/sdl2/src)
include_directories(${SDL2_INCLUDE_DIR} ${SDL2_INCLUDE_DIR})
target_link_libraries(2dgameengine ${SDL2_LIBRARY})
的main.cpp
#include <iostream>
#include <SDL.h>
#include "Tile.cpp"
int main () {
return 0;
}
Tile.cpp
class Tile {
// ...
}
如何在我的xcode项目中显示Tile.cpp?
修改 这在任何时候都不会影响现实世界。我只是懒得将* .cpp类拆分为* .h和* .cpp文件。所以我只是包含* .cpp文件 - 即使它不是正确的方法 - 这仅用于测试目的
我试图将它设置为cmake中的另一个源文件,这不起作用,因为它包含在我的&#34; main.cpp&#34;这会产生链接器错误
答案 0 :(得分:1)
通常在目标的来源中包含该文件:
add_executable(2dgameengine
${MAIN_FILE}
src/Tile.cpp
)
告诉CMake将其视为头文件:
set_property(SOURCE src/Tile.cpp PROPERTY HEADER_FILE_ONLY TRUE)
这将阻止CMake为其生成编译规则。