2011-12-25 2 views
1

내 프로그램을 make으로 컴파일하려고하면 주 오류에 대한 정의되지 않은 참조가 나타납니다. 그러나, 내 src 디렉토리 내에 main이 존재하며, 내가 잘못하고있는 것에 대해 잃어버린 느낌이 든다.CMake undefined reference to main

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) 

질문을 바탕으로

왜 내 주요 파일이 없습니다 참조지고?

답변

4

int main (int argc, char *argv[]) (또는 매개 변수가없는 해당 항목)이 모든 프로그램에 존재해야합니다. 소스 코드를 보지 않고 설정이 잘못되었다는 것을 말하기는 어렵지만 실행 파일로 컴파일하려고하는 모든 파일 (예 : opengl_02.cpp, geometrics.cpp 또는 main.cpp)에 주요 기능이 없다는 느낌이 들었습니다. 세 개의 실행 파일을 실제로 만들려면 main 함수가 예제의 세 소스 파일 모두에 있어야합니다. 세 소스 파일에서 실행 파일을 만들려면 add_executable(main main.cpp opengl_02.cpp geometrics.cpp)과 같은 단일 실행 파일에 대해 모두 지정해야합니다. 희망이 도움이됩니다.

+0

마지막 비트가 내가 필요한 것입니다. 감사합니다. +1 – zeboidlund