我正在創建一個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