(原)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)
View Code

2)运行 “cmake  CMakeList.txt” 配置jthread-1.3.1,这时候会生成特定的这次编译的配置缓存文件。

3)执行make 

4)运行make install,这时候会安装到/usr/local/的各个目录下。

原文地址:https://www.cnblogs.com/lihaiping/p/5476711.html