G 不会链接到/usr/lib/中的库

g++ will not link to library in /usr/lib/

本文关键字:lib usr 链接      更新时间:2023-10-16

我已经创建了一个库,并在/usr/lib(使用cmake)中安装了库。例如:

set(CMAKE_INSTALL_PREFIX /usr/) 
target_link_libraries(ssd1306)
set_target_properties(ssd1306 PROPERTIES   VERSION 1.0.0   SOVERSION 1 )
install(TARGETS ssd1306 DESTINATION lib)   
install(FILES ${SSD1306_HEADERS} DESTINATION include)

这效果很好,我的文件系统上存在库:库:

ls -l/usr/lib/libssd1306*

/usr/lib/libssd1306.so -> libssd1306.so.1
/usr/lib/libssd1306.so.1 -> libssd1306.so.1.0.0
/usr/lib/libssd1306.so.1.0.0

和标题:

ls -l/usr/include/ssd1306.h

/usr/include/ssd1306.h

然后我写了一个使用库的程序(再次使用cmake):

target_link_libraries(ssd1306-info libssd1306)

,但由于某种原因,它不会在编译时链接到我的库:

/usr/bin/ld:找不到-llibssd1306

找到了标头文件并创建了对象文件,但链接失败。

当然/usr/lib/在G 搜索路径中:

g++ -print-search-dirs

安装:/usr/lib/gcc/x86_64-linux-gnu/5/程序:=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/lib/gcc/x86_64-linux-gnu/5/5/:/usr/lib/lib/gcc/x86_64-linux-gnu/://:/usr/lib/gcc/x86_64-linux-gnu/5/5/:/usr/lib/lib/gcc/x86_64-linux-gnu/:/usr/lib/lib/lib/x86_64-linux-gnu/5/../../../../../x86_64-linux-gnu/bin/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../../../x86_64-linux-gnu/bin/x86_64-linux-gnu/:/usr/lib/lib/gcc/x86_64-linux-gnu/5/../../../../../../../../../../x86_64-linux-gnu/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/bin/库:=/usr/lib/gcc/x86_64-linux-gnu/5/5/:/usr/lib/lib/gcc/x86_64-linux-gnu/5/../../../gnu/lib/x86_64-linux-gnu/5/:/usr/lib/lib/gcc/x86_64-linux-gnu/5/../../../../../../../../../../linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../../x86_64-linux-gnu/lib/../lib/lib/:/usr/lib/GCC/x86_64-linux-gnu/5/../../../../../../x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../../../../../../://lib/x86_64-linux-gnu/5/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/lib/x86_64-linux-gnu/5/:/usr/lib/lib/x86_64-linux-nux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../../../x86_64-linux-gnu/lib/lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../:/lib/:/usr/lib/p>>

我做错了什么?

弄清楚了。

在同一对象(.o)文件中链接的库和可执行文件。

'arduino'的东西是关于不应该存在的外部变量(复制和帕斯特代码问题)。

相关文章: