我发生了一件非常奇怪的事情:如果我第一次编译项目(或者我删除'build'文件夹),CMake无法选择正确版本的g ++ 。
因此,使用auto
时,“全新”编辑会出错,但如果我再次编译,则一切顺利(直到我删除'build'文件夹)。
这是你的档案:
的CMakeLists.txt
file(GLOB_RECURSE SOURCES
include/*.h
src/*.cpp
)
SET(CMAKE_CXX_FLAGS "-std=c++14")
set(filename $ENV{env_filename})
cmake_minimum_required(VERSION 2.8)
project( filename )
add_executable( ${filename} ${filename}.cpp ${SOURCES})
compile.sh
#!/bin/bash
clear
set -e
source filedata.txt
export env_filename=$filename
mkdir -p build && cd build
cmake .. &> /dev/null
make -B
./$filename
filedata.txt
filename="1_Example"
提前致谢,
爱德华
答案 0 :(得分:1)
无法真正帮助您解决实际错误,但是......
为什么使用set -e?你不应该跳过错误,你应该修复它们......
您的CMakeLists.txt结构也不正确。你应该在第一行有:
cmake_minimum_required(VERSION 2.8)
project( filename )
否则,它被认为是不正确的。它可能会奏效,但它不应该。在运行CMake命令之前,您必须指定运行该文件所需的版本。
你的SOURCES条目应该有双引号。
<强>更新强>
结果将cmake_minimum_requirement(VERSION 2.8)首先修复为OP。在那之后,在CMake中结构上不需要太多,你可以使用你的常识,但首先要有版本要求。