(原)linux下利用cmake来编译jthread开源库
其实上次在用hisi3531平台的时候,就已经编译过一次这个库了,这次换了平台环境,交叉编译器变成了arm-hisiv100-linux-工具链,所以,没办法只能重新来过。
因为之前编译过,所以这次还按照编译上次的编译步骤,就会出现错误:原因是因为我没有删除上次cmake生成的一些缓存配置文件,同时我的这次路径又进行更改,所以cmake 会报错,说路径啥的不对,于是简单的方法是删除上次cmake生成遗留下来的所有缓存配置文件,然后就能安装正常的编译步骤进行了。
下面记录下我的正常编译步骤:
1)进入jthread-1.3.1目录,修改CMakeList.txt配置文件,将交叉编译工具改为自己的工具:
我的配置如下:
cmake_minimum_required(VERSION 2.6) #告知当前使用的是交叉编译方式 SET(CMAKE_SYSTEM_NAME Linux) #设置c编译器 SET(CMAKE_C_COMPILER "arm-hisiv200-linux-gcc") #设置c++编译器 SET(CMAKE_CXX_COMPILER "arm-hisiv200-linux-g++") project(jthread) set(VERSION 1.3.1) set (_DEFAULT_LIBRARY_INSTALL_DIR lib) if (EXISTS "${CMAKE_INSTALL_PREFIX}/lib32/" AND CMAKE_SIZEOF_VOID_P EQUAL 4) set (_DEFAULT_LIBRARY_INSTALL_DIR lib32) elseif (EXISTS "${CMAKE_INSTALL_PREFIX}/lib64/" AND CMAKE_SIZEOF_VOID_P EQUAL 8) set (_DEFAULT_LIBRARY_INSTALL_DIR lib64) endif () set(LIBRARY_INSTALL_DIR "${_DEFAULT_LIBRARY_INSTALL_DIR}" CACHE PATH "Library installation directory") if(NOT IS_ABSOLUTE "${LIBRARY_INSTALL_DIR}") set(LIBRARY_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${LIBRARY_INSTALL_DIR}") endif() find_package(Threads) if (NOT CMAKE_USE_WIN32_THREADS_INIT) if (NOT CMAKE_USE_PTHREADS_INIT) message(FATAL_ERROR "Can find neither pthread support nor Win32 thread support") endif (NOT CMAKE_USE_PTHREADS_INIT) endif (NOT CMAKE_USE_WIN32_THREADS_INIT) add_subdirectory(src)
2)运行 “cmake CMakeList.txt” 配置jthread-1.3.1,这时候会生成特定的这次编译的配置缓存文件。
3)执行make
4)运行make install,这时候会安装到/usr/local/的各个目录下。