반응형
[목차로 이동]
큰 프로젝트를 수행할 때 파일을 하나로 수행하는 경우는 흔하지 않습니다. 그리고 파일 하나를 위해서는 굳이 빌드 스크립트가 필요하지 않겠죠.
한개 이상의 파일을 이용하는 간단한 예제를 만들어보고자 합니다.
name.cpp를 추가하고 앞의 hello.cpp를 조금 수정해 보았습니다.
좀 사기성 짙은 코드입니다만 동작에는 문제가 없습니다.
g++로 컴파일해보자면,
# g++ -c hello.cpp
# g++ -c name.cpp
# g++ -o hello_name hello.o name.o
hello_name이 만들어집니다.
CMake를 써보겠습니다.
새로 만든 CMakeLists.txt를 보겠습니다.
# cat CMakeLists.txt
PROJECT(hello)
ADD_EXECUTABLE(hello hello.cpp;name.cpp)
파일이 들어가는 부분에 두개의 파일을 ;으로 구분해서 적었습니다.
CMake에서는 리스트가 좀 특이하게 처리되는 것 같습니다. 간단히 ;로 구분된 값이면 리스트라고 생각하시면 됩니다.
그런데 이런 방법으로 파일이 좀 늘어나면 ADD_EXECUTABLE이 길어지고 보기 안좋을 것 같습니다.
변수를 하나 추가해서 코드를 좀 늘려보겠습니다(?).
SRCS라는 변수를 추가하여 두개의 문자열(hello.cpp, name.cpp)를 넣습니다. 따라서 SRCS는 리스트 변수가 될 것입니다.
ADD_EXECUTABLE에는 이 SRCS 변수를 대입합니다. 이 때 ${...}를 사용하여 변수의 값을 얻어올 수 있습니다.
결과는 앞에 실행된 것과 동일합니다.
큰 프로젝트를 수행할 때 파일을 하나로 수행하는 경우는 흔하지 않습니다. 그리고 파일 하나를 위해서는 굳이 빌드 스크립트가 필요하지 않겠죠.
한개 이상의 파일을 이용하는 간단한 예제를 만들어보고자 합니다.
name.cpp를 추가하고 앞의 hello.cpp를 조금 수정해 보았습니다.
# cat name.cpp
char* name()
{
return "bunhere";
}
# cat hello.cpp
#include <iostream>
char* name();
int main()
{
std::cout << "hello, " << name() << std::endl;
return 0;
}
좀 사기성 짙은 코드입니다만 동작에는 문제가 없습니다.
g++로 컴파일해보자면,
# g++ -c hello.cpp
# g++ -c name.cpp
# g++ -o hello_name hello.o name.o
hello_name이 만들어집니다.
CMake를 써보겠습니다.
새로 만든 CMakeLists.txt를 보겠습니다.
# cat CMakeLists.txt
PROJECT(hello)
ADD_EXECUTABLE(hello hello.cpp;name.cpp)
파일이 들어가는 부분에 두개의 파일을 ;으로 구분해서 적었습니다.
CMake에서는 리스트가 좀 특이하게 처리되는 것 같습니다. 간단히 ;로 구분된 값이면 리스트라고 생각하시면 됩니다.
그런데 이런 방법으로 파일이 좀 늘어나면 ADD_EXECUTABLE이 길어지고 보기 안좋을 것 같습니다.
변수를 하나 추가해서 코드를 좀 늘려보겠습니다(?).
# cat CMakeLists.txt
PROJECT(hello)
SET (SRCS
hello.cpp
name.cpp
)
ADD_EXECUTABLE(hello ${SRCS})SRCS라는 변수를 추가하여 두개의 문자열(hello.cpp, name.cpp)를 넣습니다. 따라서 SRCS는 리스트 변수가 될 것입니다.
ADD_EXECUTABLE에는 이 SRCS 변수를 대입합니다. 이 때 ${...}를 사용하여 변수의 값을 얻어올 수 있습니다.
결과는 앞에 실행된 것과 동일합니다.
반응형
'Open Source > cmake' 카테고리의 다른 글
[번역] CMake FAQ (0) | 2011.08.18 |
---|---|
[CMAKE] File 다루기 (0) | 2011.05.30 |
[cmake] 목차 (0) | 2011.04.12 |
[cmake] 2. Hello (0) | 2011.04.12 |
CMake 소개 (0) | 2011.04.07 |