2017-03-17 91 views
0

我试图部署示例OROCOS组件与此处描述LTTng跟踪:http://paul.chavent.free.fr/orocos-traces.htmlOROCOS LTTng符号查找错误:/path/to/liborocos-rtt-traces-gnulinux.so:未定义的符号:lttng_probe_register

这似乎找到liborocos-rtt-traces-gnulinux.so共享库,但未能找到一个LTTng符号,并返回错误:

symbol lookup error: /path/to/liborocos-rtt-traces-gnulinux.so: undefined symbol: lttng_probe_register

任何想法?一些建议是改变我的路线以及LDFLAGS,但没有运气。我已经按照一些线索:

http://stackoverflow.com/questions/9154072/symbol-lookup-error-linux-c 

https://lists.lttng.org/pipermail/lttng-dev/2014-March/022571.html 

https://www.mail-archive.com/[email protected]/msg05580.html 

https://linux.die.net/man/8/ld.so 

回答

0

固定它,问题是RTT-lttng没有定位lttng - 乌斯季库,所以我必须找到并指定位置。

我只需要改变的痕迹directoy的RTT-lttng内CMakeLists:

### Trace with lttng-ust 

IF (NOT OROBLD_DISABLE_LTTNG_UST) 

    MESSAGE("Building tracing lib.") 

    find_path(LTTNG_UST_INCLUDE_DIR lttng/tracepoint.h 
      HINTS ${PC_LTTNG_UST_INCLUDEDIR} ${PC_LTTNG_UST_INCLUDE_DIRS}) 

    find_library(LTTNG_UST_LIBRARY lttng-ust 
      HINTS ${PC_LTTNG_UST_LIBDIR} ${PC_LTTNG_UST_LIBRARY_DIRS}) 

    find_library(LIBURCU_BP_LIBRARY urcu-bp 
      HINTS ${PC_LIBURCU_BP_LIBDIR} ${PC_LIBURCU_BP_LIBRARY_DIRS}) 

    set(Lttng_ust_LIBRARIES ${LTTNG_UST_LIBRARY} ${LIBURCU_BP_LIBRARY} -ldl) 
    set(Lttng_ust_INCLUDE_DIRS ${LTTNG_UST_INCLUDE_DIR}) 

    INCLUDE_DIRECTORIES( ${Lttng_ust_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}) 
    ADD_LIBRARY(   orocos-rtt-traces-gnulinux SHARED "lttng_ust.c") 
    SET_TARGET_PROPERTIES(orocos-rtt-traces-gnulinux PROPERTIES 
         SOVERSION  "${RTT_VERSION_MAJOR}.${RTT_VERSION_MINOR}" 
         VERSION  "${RTT_VERSION}") 
    TARGET_LINK_LIBRARIES(orocos-rtt-traces-gnulinux ${Lttng_ust_LIBRARIES}) 

    INSTALL(TARGETS  orocos-rtt-traces-gnulinux 
         LIBRARY DESTINATION lib) 

ENDIF(NOT OROBLD_DISABLE_LTTNG_UST)