Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Compile against live555 static library with CMake

I'm trying to use the live555 library in my program. I use CMake as building system. I made this 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})

Compiling/linking I got a lot of errors similar to this:

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

Every library is already compiled. Seems that these libraries depends on each other and I have to link them together or in a certain order. Does anyone knows if this is the case? How to do it?

like image 445
Davide Avatar asked Oct 23 '25 18:10

Davide


1 Answers

This is not due to cmake but internal live555 dependencies, it should works modifying the order like this :

set(LIVE_LIBRARIES groupsock liveMedia BasicUsageEnvironment UsageEnvironment)
like image 198
mpromonet Avatar answered Oct 25 '25 08:10

mpromonet