gpt4 book ai didi

c++ - cmake - 显示项目中的其他类文件

转载 作者:行者123 更新时间:2023-11-30 05:06:13 24 4
gpt4 key购买 nike

我最近开始在我的项目中使用 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})

主要.cpp

#include <iostream>
#include <SDL.h>


#include "Tile.cpp"

int main () {

return 0;
}

瓷砖.cpp

class Tile {
// ...
}

如何使 Tile.cpp 在我的 xcode 项目中可见?

编辑这不是随时会袭击现实世界的东西。我只是懒得将我的 *.cpp 类拆分为 *.h 和 *.cpp 文件。所以我只包含 *.cpp 文件 - 即使它不是正确的方式 - 这仅用于测试目的

我试图在 cmake 中将它设置为另一个源文件,但它不起作用,因为它包含在我的“main.cpp”中,这会导致链接器错误

最佳答案

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

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

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

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

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

关于c++ - cmake - 显示项目中的其他类文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48034431/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com