gpt4 book ai didi

c++ - CMake 无法在新版本中识别 C++ 编译器版本

转载 作者:行者123 更新时间:2023-11-28 05:17:21 27 4
gpt4 key购买 nike

我身上发生了一些很奇怪的事情:CMake 无法选择正确的 g++ 版本只有如果我第一次编译一个项目(或者我删除'build'文件夹)。

因此,当使用 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})

编译.sh

#!/bin/bash
clear
set -e
source filedata.txt
export env_filename=$filename
mkdir -p build && cd build
cmake .. &> /dev/null
make -B
./$filename

文件数据.txt

filename="1_Example"

提前致谢

爱德华多

最佳答案

无法真正帮助您解决实际错误,但是...

为什么要使用 set -e?你不应该跳过错误,你应该修复它们......

您的 CMakeLists.txt 的结构也不正确。你应该在第一行有:

cmake_minimum_required(VERSION 2.8)
project( filename )

否则认为不正确。它可能有效,但不应该。在运行 CMake 命令之前,您必须指定运行该文件所需的版本。

您的 SOURCES 条目应该用双引号引起来。

更新

事实证明,首先将 cmake_minimum_requirement(VERSION 2.8) 用于 OP 修复它。在那之后,在 CMake 中的结构要求不多,您可以使用您的常识来完成其余的工作,但必须首先满足版本要求。

关于c++ - CMake 无法在新版本中识别 C++ 编译器版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42333981/

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