CMake未定义对main的引用

时间:2011-12-25 03:26:14

标签: c++ compilation cmake linker-errors

当我尝试用make编译我的程序时,我得到一个未定义的主错误引用。然而,主要存在于我的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)

问题

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

1 个答案:

答案 0 :(得分:5)

int main (int argc, char *argv[])(或其等效的无参数)必须存在于每个程序中。在没有查看源代码的情况下很难说你的设置有什么问题,但我觉得你试图编译成可执行文件的每个文件中都没有main函数,即opengl_02.cpp,{{1 }或geometrics.cpp。如果您确实要创建三个可执行文件,则示例中的所有三个源文件中都应存在main.cpp函数。如果要从三个源文件创建可执行文件,则必须为单个可执行文件指定所有可执行文件,例如main。希望它有所帮助。