我希望创建一个静态库,它依赖于另一个库,即ZLIB。我已经有一个静态版本的构建(libz.a)。
以下是我的代码:
然而,构建的最后一步是创建静态库,但没有任何引用到
例如:
似乎最终的归档创建不考虑使用
以下是我的代码:
...
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static")
set (BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)
set (CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES}) # to find the .a instead of the .so
...
find_package(ZLIB REQUIRED)
if (ZLIB_FOUND)
message(STATUS "ZLIB library: ${ZLIB_LIBRARIES}") # ZLIB library: /usr/lib64/libz.a
include_directories(${ZLIB_INCLUDE_DIRS})
set (EXT_LIBS ${EXT_LIBS} ${ZLIB_LIBRARIES})
endif()
...
add_library (libTest ${MCCORE_SOURCES_CC})
target_link_libraries(libTest ${EXT_LIBS}) #EXT_LIBS = /usr/lib64/libz.a
然而,构建的最后一步是创建静态库,但没有任何引用到
/usr/lib64/libz.a
。例如:
/usr/bin/ar cr libTest.a object1.o object2.o ... objectN.o
我期望:
/usr/bin/ar cr libTest.a object1.o object2.o ... objectN.o /usr/lib64/libz.a
似乎最终的归档创建不考虑使用
target_link_libraries
设置的库。有什么想法吗?我该怎么做才能强制它生效呢?