cmake - 在项目中显示其他类文件

问题描述 投票:1回答:1

我最近在我的项目中开始使用cmake,并设法使用CMAKE包含SDL。

现在我添加了一个简单的类文件,它包含在我的main.cpp

在再次配置/生成项目后,我的源文件看起来像这样:

enter image description here

我的设置

的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中的另一个源文件,这不起作用,因为它包含在我的“main.cpp”中,这会产生链接器错误

c++ xcode cmake
1个回答
1
投票

通常将文件包含在目标的源中:

add_executable(2dgameengine
    ${MAIN_FILE}
    src/Tile.cpp
)

并告诉CMake将其视为头文件:

set_property(SOURCE src/Tile.cpp PROPERTY HEADER_FILE_ONLY TRUE)

这将阻止CMake为其生成编译规则。

© www.soinside.com 2019 - 2024. All rights reserved.