gpt4 book ai didi

c++ - cmake 生成错误的 makefile

转载 作者:行者123 更新时间:2023-11-28 00:25:35 28 4
gpt4 key购买 nike

/usr/bin/clang++    -std=c++11;-Werror;-Wextra;-Wall;-Wconversion -g   -o CMakeFiles/TilingGame.dir/src/streak.cc.o -c /home/arne/projects/tilinggame/src/streak.cc
clang: error: no input files
/bin/sh: -Werror: Kommando nicht gefunden.
/bin/sh: -Wextra: Kommando nicht gefunden.
/bin/sh: -Wall: Kommando nicht gefunden.
/bin/sh: -Wconversion: Kommando nicht gefunden.
CMakeFiles/TilingGame.dir/build.make:54: recipe for target 'CMakeFiles/TilingGame.dir/src/streak.cc.o' failed

如您所见,我的 shee 将分号视为命令的结尾,然后尝试将“-Werror”解释为新命令。我如何告诉 cmake 生成有效的 makefile 而不是损坏的 makefile?

这是我的 CMakeLists.txt

project(TilingGame)
cmake_minimum_required(VERSION 2.8)
aux_source_directory(src SRC_LIST)
add_executable(${PROJECT_NAME} ${SRC_LIST})
set(CMAKE_CXX_FLAGS -std=c++11 -Werror -Wextra -Wall -Wconversion)

include(FindPkgConfig)

PKG_SEARCH_MODULE(SDL2 REQUIRED sdl2)
PKG_SEARCH_MODULE(SDL2IMAGE REQUIRED SDL2_image)
PKG_SEARCH_MODULE(SDL2MIXER REQUIRED SDL2_mixer)
PKG_SEARCH_MODULE(SDL2TTF REQUIRED SDL2_ttf)
PKG_SEARCH_MODULE(ZLIB REQUIRED zlib)

TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${SDL2_LIBRARIES} ${SDL2IMAGE_LIBRARIES} ${SDL2MIXER_LIBRARIES} ${SDL2TTF_LIBRARIES} ${ZLIB_LIBRARIES} tmxparser tinyxml)

最佳答案

由于您没有向我们展示您的 cmake 文件中您添加这些标志的部分,我们无法准确说明。但是,很明显,您以某种方式导致 cmake 将值列表转换为字符串,然后将该字符串用作标志。 cmake 中列表变量的字符串化版本以分号分隔。

例如,您的 CMakeLists.txt 中可能有这样的内容:

set(FLAGS -std=c++11 -Werror -Wextra -Wall -Wconversion)
add_definitions("${FLAGS}")

你不应该在这里使用引号。

关于c++ - cmake 生成错误的 makefile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25275031/

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