首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >g++不会链接到/usr/lib/中的库

g++不会链接到/usr/lib/中的库
EN

Stack Overflow用户
提问于 2016-11-26 23:07:42
回答 1查看 849关注 0票数 1

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

代码语言:javascript
复制
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/lib 1306*

代码语言:javascript
复制
/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

代码语言:javascript
复制
/usr/include/ssd1306.h

然后我编写了一个使用这个库的程序(同样使用cmake):

代码语言:javascript
复制
target_link_libraries(ssd1306-info libssd1306)

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

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

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

当然,/usr/lib/ is在g++搜索路径中:

代码语言:javascript
复制
g++ -print-search-dirs

安装: /usr/lib/gcc/x86_64-linux-gnu/5/程序:=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/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/gcc/x86_64-linux-gnu/5/../../../../x86_64-linux-gnu/bin/库:=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../x86_64-linux-gnu/lib/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../x86_64-linux-gnu/lib/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../x86_64-linux-gnu/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/:/lib/x86_64-linux-gnu/5/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/5/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../x86_64-linux-gnu/lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/

我做错什么了?

EN

回答 1

Stack Overflow用户

发布于 2016-11-27 05:32:11

弄明白了。

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

“arduino”是关于一个不应该存在的外部变量(复制和粘贴代码问题)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40824088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档