【发布时间】:2013-12-16 01:20:25
【问题描述】:
我有三个共享库:lib_1.so、lib_2.so 和 lib_3.so。 你如何只创建一个名为 lib_all.so 的库来包含所有三个库?
我正在尝试编译一些源文件,其中包括来自两个子项目/子目录的文件,并且每个子项目 (2) 都有 CMakeLists.txt,但我只想创建一个 .so 库,而不是三个。
已添加 我希望 medium.so 还包含 libnoise.so 和 noiseutils.so,这是我的 CMakeLists.txt
project (map)
cmake_minimum_required(VERSION 2.8)
find_package(PythonLibs)
include_directories (${PYTHON_INCLUDE_DIRS})
find_package(Boost 1.45.0 COMPONENTS python)
include_directories (${Boost_INCLUDE_DIRS})
set (LIBNOISE_PATH ${MY_SOURCE_DIR}/libnoise)
set (LIBNOISEUTILS_PATH ${MY_SOURCE_DIR}/noiseutils)
add_subdirectory(libnoise)
add_subdirectory(noiseutils)
add_library (
map SHARED
Wrapped.cpp
)
target_link_libraries (
map
boost_python
${PYTHON_LIBRARIES}
${Boost_LIBRARIES}
)
linoise 和 noiseutils 是带有自己的 CMakeLists.txt 的子目录
【问题讨论】:
-
不可能,除非你有这三个的来源。如果它们是静态库 (.a),那就可以了。
-
@SevaAlekseyev 我有这三个的来源,但是当我使用 cmake 时它会创建三个,我需要一个
-
@PaolaJ 然后我建议重新表述你的问题。
-
@PeterHorvath 我重新提出了问题,有什么解决方案吗? :)
-
@PaolaJ。到我没有的重新制定的版本。 :-) 也许其他人。
标签: c++ g++ cmake shared-libraries