视为服务器代码:
- 我创建了一个共享库,其中包含 nanomsg 包功能。
- 加入
DEPENDS += "nanomsg"
bb文件。(没有这个<nanomsg/*.h>
给出“没有这样的文件是目录”错误)。 - 服务器将通过共享库(使用 nanomsg IPC)向客户端发送一些数据。
视为独立应用程序代码:
应用程序代码调用共享库功能,以便从服务器接收数据。
用于
target_link_libraries
共享库和包含目录。使用 bitbake 时
.. undefined reference 'nn_send' ... nn_socket ld: exit 1 status issues are
见过。
请帮助我。
CMakeList.txt
:
项目目录中的 nanomsg 代码路径:
include_directories(${XXXXX_SRC}thirdparty/nanomsg/src)
在其他项目目录中创建的共享库:
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}
)
由于上面的一个不起作用,因此将下面的一个添加为插件 - sharednnmsg 所在的位置。
target_link_libraries(${COMPONENT_EXECUTABLE_NN_CLI} -L/../../../xxx/)
-
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'