gpt4 book ai didi

c++ - 如何设置cmake,以便将txt文件作为资源添加到工作目录中?

转载 作者:行者123 更新时间:2023-12-03 21:50:42 29 4
gpt4 key购买 nike

CMakeLists.txt

cmake_minimum_required(VERSION 3.8)
project(untitled)

set(CMAKE_CXX_STANDARD 11)

set(SOURCE_FILES main.cpp)
add_executable(untitled ${SOURCE_FILES})

主程序
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main () {
string line;
ifstream myfile ("test.txt");
if (myfile.is_open())
{
while ( getline (myfile,line) )
{
cout << line << '\n';
}
myfile.close();
}

else cout << "Unable to open file";

return 0;
}

我得到了这个输出“无法打开文件”。
文件 test.txt , CMakeLists.txtmain.cpp都在同一个目录下。 IDE 是 CLion。

如何设置 CMakeLists.txt , 以添加 test.txt文件作为资源放入工作目录?

最佳答案

您可以使用 file(COPY成语:

file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/test.txt
DESTINATION ${CMAKE_CURRENT_BINARY_DIR})

但我也可以建议 configure_file COPYONLY选项。这样,当 test.txt被修改,CMake 将重新配置并重新生成构建。如果您不需要,只需使用 file(COPY
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/test.txt
${CMAKE_CURRENT_BINARY_DIR} COPYONLY)

你还会看到很多人在使用 add_custom_command复制文件,但当您必须在构建步骤之间复制文件时,这更有用:
add_custom_command(
TARGET untitled POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
${CMAKE_SOURCE_DIR}/test.txt
${CMAKE_CURRENT_BINARY_DIR}/test.txt)

我认为在您的情况下,第一个示例最合适,但是现在您的工具箱中有适用于所有场景的工具。

关于c++ - 如何设置cmake,以便将txt文件作为资源添加到工作目录中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46995733/

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