对main进行未定义的引用

CMake undefined reference to main

本文关键字:引用 未定义 main      更新时间:2023-10-16

当我尝试用make编译我的程序时,我得到了对主要错误的未定义引用。然而,main存在于我的src目录中,我觉得我做错了什么。

我假设add_executable([title] [source])是用于向编译中添加源文件的命令。

基于cmake教程的
cmake_minimum_required(VERSION 2.6)
project(opengl_02)
add_executable(opengl_02 opengl_02.cpp)
add_executable(main main.cpp)
add_executable(geometrics geometrics.cpp)
set (opengl_02_version_major 1)
set (openfl_02_version_minor 0)
#configure the header file to pass some of the CMake settings 
#to the source code
configure_file(
    "${PROJECT_SOURCE_DIR}/opengl_02_config.h.in"
    "${PROJECT_BINARY_DIR}/opengl_02_config.h"
    )
#add the binary tree to the search path for include files
#so that it will find tutorialconfig.h
include_directories("{PROJECT_BINARY_DIR}")
add_executable(opengl_02_config opengl_02_config.cpp)

为什么我的主文件没有被引用?

int main (int argc, char *argv[])(或其不带参数的等价物)必须存在于每个程序中。如果不查看源代码,很难说你的设置有什么问题,但我有一种感觉,主函数不存在于你试图编译成可执行文件的每个文件中,即opengl_02.cpp, geometrics.cppmain.cpp。如果您真的想要创建三个可执行文件,那么main函数应该出现在示例中的所有三个源文件中。如果希望从三个源文件创建可执行文件,则必须为单个可执行文件指定所有源文件,如add_executable(main main.cpp opengl_02.cpp geometrics.cpp)