提问者:小点点

简单CMAKE教程的问题


文件夹目录是

CMAKE-GOOD
-build
-CMakeLists.txt
-main.cpp

这是cmakelists.txt

cmake_minimum_required(VERSION 3.14)

project(MyProject VERSION 1.0.0)

add_executable(cmake-good main.cpp)

这是main.cpp

#include <iostream>
int main()
{
    std::cout << "hello, world! \n";
}

当我在~desktop/cmake_tutorial_cmake_good/build中键入cmake--build.时,它显示一个错误

(base) bmssa@bmssa:~/Desktop/CMake_tutorial/CMAKE-GOOD/build$ cmake --build .
[ 50%] Linking CXX executable cmake-good
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status
CMakeFiles/cmake-good.dir/build.make:96: recipe for target 'cmake-good' failed
make[2]: *** [cmake-good] Error 1
CMakeFiles/Makefile2:82: recipe for target 'CMakeFiles/cmake-good.dir/all' failed
make[1]: *** [CMakeFiles/cmake-good.dir/all] Error 2
Makefile:90: recipe for target 'all' failed
make: *** [all] Error 2

就像我听到的CMake-build。与make相似,所以我尝试了make,它显示了如下错误

(base) bmssa@bmssa:~/Desktop/CMake_tutorial/CMAKE-GOOD/build$ make
[ 50%] Linking CXX executable cmake-good
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status
CMakeFiles/cmake-good.dir/build.make:96: recipe for target 'cmake-good' failed
make[2]: *** [cmake-good] Error 1
CMakeFiles/Makefile2:82: recipe for target 'CMakeFiles/cmake-good.dir/all' failed
make[1]: *** [CMakeFiles/cmake-good.dir/all] Error 2
Makefile:90: recipe for target 'all' failed
make: *** [all] Error 2

当我键入cmake-version时,

cmake version 3.20.0

CMake suite maintained and supported by Kitware (kitware.com/cmake).

你能帮我修好它吗?我不能做任何事情,因为我甚至不能解决这个简单的错误在非常容易的教程。请帮帮我请谢谢

ps.因为我都不知道什么是CMake中的错误,你能告诉我应该在google中键入什么来解决这个问题吗?

Taget的食谱?目标“all”的制作方法失败?

不知道在谷歌里该打什么....


共1个答案

匿名用户

您创建了项目文件吗?

cmake -S . -B build/foobar

cmake --build build/foobar

第一步创建项目文件。第二步使用第1部分中生成的文件构建项目。