cmake项目构建错误,共享库依赖于另一个

时间:2017-05-25 13:59:37

标签: c makefile cmake shared-libraries

我正在构建一个使用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' 

1 个答案:

答案 0 :(得分:0)

请尝试

target_link_libraries (-Wl,--start-group lwm2mclient libmraa.so m libi2capi.so libtca6424a.so -Wl,--end-group)

或更改库的顺序