分割コンパイル
hojo.hpp
int hello();
hojo.cpp
#include "hojo.hpp" int hello() { return 1000; }
hello.cpp
#include <iostream> #include "hojo.hpp" using namespace std; int main(){ cout << "Hello world." << endl; int x = hello(); cout << x << endl; return 0; }
というファイルをコンパイルしたいとする。 次のようなMakefileを作る。
objs = hello.o hojo.o CC = clang++ hello: $(objs) $(CC) -o hello $(objs) hello.o:hello.cpp $(CC) -c -o hello.o hello.cpp hojo.o:hojo.cpp $(CC) -c -o hojo.o hojo.cpp clean: rm -f $(objs)
これでmakeすればビルドできる。
CMakeで同様の事をする場合
CMakeLists.txt
cmake_minimum_required(VERSION 2.8) project(hello) add_executable(hello hello.cpp hojo.cpp)
を作り、
mkdir build cd build cmake .. make
でビルドできる。
そのご 他のフォルダをインクルードした
message("hoge") cmake_minimum_required(VERSION 3.1) enable_language(CXX) set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) project(hello) include_directories(/Users/hoge/RxCpp-4.0.0/Rx/v2/src) # set(CMAKE_MODULE_PATH "usr/local/rxcpp" ${CMAKE_MODULE_PATH}) message("INCLUDE_DIRECTORIES ${INCLUDE_DIRECTORIES}") message("CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}") # find_package(rxcpp) add_executable(hello hello.cpp hojo.cpp)