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