0

视为服务器代码:

  1. 我创建了一个共享库,其中包含 nanomsg 包功能。
  2. 加入DEPENDS += "nanomsg"bb文件。(没有这个<nanomsg/*.h>给出“没有这样的文件是目录”错误)。
  3. 服务器将通过共享库(使用 nanomsg IPC)向客户端发送一些数据。

视为独立应用程序代码:

  1. 应用程序代码调用共享库功能,以便从服务器接收数据。

  2. 用于target_link_libraries共享库和包含目录。

  3. 使用 bitbake 时

    .. undefined reference 'nn_send' ... nn_socket  ld: exit 1 status issues are
    

    见过。

请帮助我。

CMakeList.txt

  1. 项目目录中的 nanomsg 代码路径:

    include_directories(${XXXXX_SRC}thirdparty/nanomsg/src)
    
  2. 在其他项目目录中创建的共享库:

    include_directories(${CMAKE_SOURCE_DIR}/xxxxx)
    

测试应用名称 - nn_client:

3.

set(
   COMPONENT_EXECUTABLE_NN_CLI
   "nn_client"
)

将共享库与我的源文件链接

4.

target_link_libraries(${COMPONENT_EXECUTABLE_NN_CLI}
                 ptpnnmsg
                ${EXTRA_LIBS}

)

  1. 由于上面的一个不起作用,因此将下面的一个添加为插件 - sharednnmsg 所在的位置。

    target_link_libraries(${COMPONENT_EXECUTABLE_NN_CLI} -L/../../../xxx/)
    
  2.  install(TARGETS ${COMPONENT_EXECUTABLE_NN_CLI}
         DESTINATION ${CMAKE_INSTALL_BINDIR})
    

而不是上面的第 6 点尝试为

install(TARGETS nn_client
       RUNTIME DESTINATION bin
)

进行 bitbake 时的错误:

../../../../xxxx/libptpnnmsg.so: undefined reference to `nn_recv'
../../../../xxxx/libptpnnmsg.so: undefined reference to `nn_freemsg'
../../../../xxxx/libptpnnmsg.so: undefined reference to `nn_bind'
../../../../xxxx/libptpnnmsg.so: undefined reference to `nn_shutdown'
../../../../xxxx/libptpnnmsg.so: undefined reference to `nn_send'
../../../../xxxx/libptpnnmsg.so: undefined reference to `nn_connect'
../../../../xxxx/libptpnnmsg.so: undefined reference to `nn_socket'
../../../../xxxx/libptpnnmsg.so: undefined reference to `nn_strerror'
../../../../xxxx/libptpnnmsg.so: undefined reference to `nn_errno'
4

0 回答 0