3

プログラムで 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()':

すべてのライブラリはすでにコンパイルされています。これらのライブラリは相互に依存しているようで、それらを一緒に、または特定の順序でリンクする必要があります。これが事実であるかどうか誰かが知っていますか?どうやってするの?

4

1 に答える 1

4

これは cmake によるものではなく、内部の live555 依存関係によるものであり、次のように順序を変更して動作するはずです。

set(LIVE_LIBRARIES groupsock liveMedia BasicUsageEnvironment UsageEnvironment)
于 2014-08-15T17:55:09.470 に答える