所以我已经获得了以下CMakeLists.txt文件来尝试构建我的main.cpp文件。
project(shell)
set(extra_flags = -std=c++11 -Werror -Wall -Wextra)
set(CMAKE_CXX_FLAGS $(CMAKE_CXX_FLAGS) $(extra_flags))
add_executable(shell main.cpp)
此时,我只是想用Hello World程序构建它,以确保一切正常。但标志是我需要编写的其余程序的标志。调用cmake .
的实际过程很好,但是当我使用make
时,我收到以下错误:
[100%] Building CXX object CMakeFiles/shell.dir/main.cpp.o
c++: fatal error: no input files
compilation terminated.
/bin/sh: 1: -o: not found
CMakeFiles/shell.dir/build.make:54: recipe for target 'CMakeFiles/shell.dir/main.cpp.o' failed
make[2]: *** [CMakeFiles/shell.dir/main.cpp.o] Error 127
CMakeFiles/Makefile2:60: recipe for target 'CMakeFiles/shell.dir/all' failed
make[1]: *** [CMakeFiles/shell.dir/all] Error 2
Makefile:72: recipe for target 'all' failed
make: *** [all] Error 2
我是Ubuntu和命令行的新手,所以非常感谢任何帮助。
答案 0 :(得分:1)
set(CMAKE_CXX_FLGAS "${CMAKE_CXX_FLAGS} ${extra_flags}")
代替set(CMAKE_CXX_FLGAS ${CMAKE_CXX_FLAGS} ${extra_flags})
,这证明在我的任何应用程序中都不会引起头痛。试试这个。make VERBOSE=1
查看CMake实际运行的命令。然后你可以直接搞乱这个命令,看看你是如何让它工作的。-std=c+11
标志(或任何标志,真的)并查看。