[萌新向] 在CMake下引用crow库

方法1

Crow的wiki说只要引用头文件就可以使用惹,通过编译命令看出Crow是依赖c++11和boost的,所以咱需要引用一下boost,在前面的文章写过怎样引用boost。
在引用boost的时候只需要引用"system thread"这两个库就可以了,这是crow的依赖。

然后c++11的话加一个参数就可以了,gcc和clang通用,msvc会忽略。msvc不用加额外的参数它默认将使用C++最新标准(能支持的),所以不用担心。
在GCC6已经默认c++14标准了
设置参数的方法:

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

设置好boost和c++11以后编译就可以通过惹:

$ cmake .; make -j4

方法2

暂时还没有发现。

CMake引用boost

代码如下:

find_package(Boost 1.52 COMPONENTS date_time filesystem system thread random REQUIRED)
if(${Boost_FOUND})
    include_directories(${Boost_INCLUDE_DIRS})
    link_directories(${Boost_LIBRARY_DIR})
endif()

注意了,cmakelists.txt对大小写要求不是很高,但是它对变量/常量的大小写要求很高,一个也不能差。
最后在add_executable后面加上一行代码来链接boost:

target_link_libraries(BlackMinecraftProtect_Server ${Boost_LIBRARIES})

在Ubuntu下编译安装SFML

sfml是一个2D图形库,我这边就不多介绍了。


首先安装编译器和cmake

sudo apt-get install g++ 
sudo apt-get install cmake


然后安装依赖库

sudo apt-get install freeglut3-dev 
sudo apt-get install libjpeg-dev 
sudo apt-get install libfreetype6-dev 
sudo apt-get install libxrandr-dev 
sudo apt-get install libglew-dev 
sudo apt-get install libsndfile1-dev 
sudo apt-get install libopenal-dev


然后编译debug版本

cmake -G "Unix Makefiles" -D CMAKE_BUILD_TYPE=Debug -D BUILD_SHARED_LIBS=TRUE .
make
sudo make install


然后编译release版本

cmake -G "Unix Makefiles" -D CMAKE_BUILD_TYPE=Release -D BUILD_SHARED_LIBS=TRUE .
make
sudo make install


然后编译debug静态库版本

cmake -G "Unix Makefiles" -D CMAKE_BUILD_TYPE=Debug -D BUILD_SHARED_LIBS=FALSE .
make
sudo make install 


然后编译release静态库版本

cmake -G "Unix Makefiles" -D CMAKE_BUILD_TYPE=Release -D BUILD_SHARED_LIBS=FALSE .
make
sudo make install