我正在创建一个C++共享库,它链接到一些Boost库(本地机器上的Boost版本1.55)。C++共享库创建 - 与其他共享库链接
我可以在我的机器上使用我的库,但由于未定义的引用,我不能在另一个系统上使用Boost的不同版本(比如说1.54)。
我使用CMake的,这里的CMakeLists.txt文件:
cmake_minimum_required(VERSION 2.8)
project(my_library)
set(CMAKE_BUILD_TYPE Release)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/lib)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
FILE(GLOB_RECURSE INCLUDE_FILES "include/*.hpp")
FILE(GLOB_RECURSE SOURCE_FILES "src/*.cpp")
add_library(${PROJECT_NAME} SHARED ${INCLUDE_FILES} ${SOURCE_FILES})
target_link_libraries(${PROJECT_NAME} -pthread -lboost_filesystem -lboost_regex -lboost_system)
我是新来库的创建,我挣扎在这个问题上天。我想知道是否必须创建一个静态库,而不是内部的Boost。但我希望我的图书馆尽可能最小。
编辑:当我检查我的库依赖我这对于加速的正则表达式: libboost_regex.so.1.55.0 => /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.55.0 (0x00007fe228a27000)
是否有可能更新该反对加速的特定版本连接不上?
没有..版本在这里是非常重要的任何二进制编译(链接)与一个特定版本需要相同的版本,而加载。 – gjha