【问题标题】:Compile against live555 static library with CMake使用 CMake 编译 live555 静态库
【发布时间】:2013-10-30 12:37:20
【问题描述】:

我正在尝试在我的程序中使用 live555 库。我使用 CMake 作为构建系统。我做了这个 CMakeLists.txt :

aux_source_directory(. SRC_LIST)
include_directories("${PROJECT_SOURCE_DIR}/libs/live/BasicUsageEnvironment/include")
include_directories("${PROJECT_SOURCE_DIR}/libs/live/UsageEnvironment/include")
include_directories("${PROJECT_SOURCE_DIR}/libs/live/groupsock/include")
include_directories("${PROJECT_SOURCE_DIR}/libs/live/liveMedia/include")
link_directories("${PROJECT_SOURCE_DIR}/libs/live/BasicUsageEnvironment")
link_directories("${PROJECT_SOURCE_DIR}/libs/live/UsageEnvironment")
link_directories("${PROJECT_SOURCE_DIR}/libs/live/groupsock")
link_directories("${PROJECT_SOURCE_DIR}/libs/live/liveMedia")
add_executable(${PROJECT_NAME} ${SRC_LIST})
set(LIVE_LIBRARIES BasicUsageEnvironment UsageEnvironment groupsock liveMedia)
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS} x264 avcodec swscale ${LIVE_LIBRARIES})

编译/链接我遇到了很多类似这样的错误:

/home/davide/program/libs/live/groupsock/libgroupsock.a(NetAddress.o):-1: In function `AddressPortLookupTable::AddressPortLookupTable()':

每个库都已编译。似乎这些库相互依赖,我必须将它们链接在一起或按特定顺序链接。有谁知道是否是这种情况?怎么做?

【问题讨论】:

    标签: c++ compilation cmake static-linking live555


    【解决方案1】:

    这不是由于 cmake 而是由于内部 live555 依赖关系,它应该可以像这样修改顺序:

    set(LIVE_LIBRARIES groupsock liveMedia BasicUsageEnvironment UsageEnvironment)
    

    【讨论】:

    • 对我来说,订购liveMedia groupsock BasicUsageEnvironment UsageEnvironment 也有效
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-23
    • 1970-01-01
    • 2014-08-30
    • 2017-03-29
    • 2018-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多