gpt4 book ai didi

linux - Cmake 无法在它们存在的地方找到源文件

转载 作者:可可西里 更新时间:2023-11-01 11:52:01 25 4
gpt4 key购买 nike

我有非常简单的 CMakeLists.txt 文件。

cmake_minimum_required (VERSION 2.6)
project (test_proj)

set(TEST_INCLUDE_DIR
"${PROJECT_SOURCE_DIR}/src")

set(TEST_CPP "${PROJECT_SOURCE_DIR}/src/source_file.cpp"
"${PROJECT_SOURCE_DIR}/src/main.cpp")

set(TEST_HEADERS
"${PROJECT_SOURCE_DIR}/src/header.h")

#include_directories(${TEST_INCLUDE_DIR})


add_executable(testproj "${TEST_CPP}" "${TEST_HEADERS}")

当我这样运行它时:

mkdir build
cd build
cmake ..

我得到下一个输出:

...
-- Configuring done
CMake Error at CMakeLists.txt:16 (add_executable):
Cannot find source file:

/home/me/test_proj/src/source_file.cpp;/home/me/test_proj/src/main.cpp

Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx

但是那些文件:

/home/me/test_proj/src/source_file.cpp
/home/me/test_proj/src/main.cpp

在那里。就在那条路下面。为什么找不到它们?如果我删除其中任何一个,那么 TEST_CPP 只包含一个源文件,项目生成良好。但是,如果我有不止一个来源,为什么它不能呢?

我试过 CR LFLF 作为结束符号,结果是一样的。

cmake 版本 2.8.12.2

最佳答案

不要在 ${TEST_CPP} 周围加上引号:

add_executable(testproj ${TEST_CPP} ${TEST_HEADERS})

否则它会将源添加为 ; 分隔列表。

只是一个提示:您不需要在所有内容前都加上 ${PROJECT_SOURCE_DIR} 前缀(它由 CMake 自动完成)。

引用

关于linux - Cmake 无法在它们存在的地方找到源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42953465/

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