我正在构建一个使用cmake的项目。
该项目使用三个共享库.so文件。
在CMakeLists.txt文件中,我添加了将共享库链接到可执行文件的这些行。
project (lwm2mclient)
LINK_DIRECTORIES(/home/mraa-master-built/build/src)
LINK_DIRECTORIES(/home/libi2capi)
LINK_DIRECTORIES(/home/libtca6424a)
target_link_libraries (lwm2mclient libmraa.so m libi2capi.so libtca6424a.so)
但是,其中一个共享库libtca6424a.so
依赖于libi2capi.so
,即它使用在其中定义的方法。
因此,当我构建cmake项目时,我收到类似的错误,指出.so
文件无法找到另一个.so
文件libtca6424a.so
中定义的方法
有人可以提出解决方案吗?
/../../lib/libtca6424a.so: undefined reference to `i2c_write_byte_data'
答案 0 :(得分:0)
请尝试
target_link_libraries (-Wl,--start-group lwm2mclient libmraa.so m libi2capi.so libtca6424a.so -Wl,--end-group)
或更改库的顺序