【问题标题】:Conflict Between Libraries库之间的冲突
【发布时间】:2018-08-22 14:13:27
【问题描述】:

我知道这个问题已经被问过好几次了,但是在搜索了一天之后我仍然无法解决它。我正在尝试使用 POCO C++ LIBRARIES 和安装了 POCO 1.3 的 ubuntu 16.0.4 LTS。我下载了最新版本的 POCO 并构建并安装到 /home/{username}/poco-1.9.0-all。但是,当我使用 eclipse 构建项目时,出现以下错误:

Building target: AuthorizationServer
Invoking: GCC C++ Linker
g++ -L/home/{username}/poco-1.9.0-all/lib -o "AuthorizationServer"  ./src/entity/ResourceOwner.o  ./src/database/MySQL.o  ./main.o   -lPocoFoundation -lPocoData -lPocoMySQL
/usr/bin/ld: warning: libPocoData.so.9, needed by /usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/libPocoMySQL.so, may conflict with libPocoData.so.60
/usr/bin/ld: warning: libPocoFoundation.so.9, needed by /usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/libPocoMySQL.so, may conflict with libPocoFoundation.so.60
Finished building target: AuthorizationServer

但是按照link1 的说明,我可以看到我的项目已正确配置并使用-L/home/{username}/poco-1.9.0-all/lib。谁能帮我解决这个问题。提前致谢。
我的eclipse项目属性如下:

C/C++ Build->Settings->Tool Settings->GCC C++ Compiler->Includes->Include paths(-I) contains /home/{username}/poco-1.9.0-all/include

C/C++ Build->Settings->Tool Settings->GCC C++ Linker->Libraries->Libraries (-l) 包含PocoFoundation, PocoData, PocoMySQL

C/C++ Build->Settings->Tool Settings->GCC C++ Linker->Libraries->Library search path(-L) contains /home/{username}/poco-1.9.0-all/lib

【问题讨论】:

    标签: c++ eclipse poco-libraries


    【解决方案1】:

    错误消息显示-lPocoMySQL 来自/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/libPocoMySQL.so,而不是来自/home/{username}/poco-1.9.0-all/lib。

    确保:

    • 你已经构建了libPocoMySQL.so,并且
    • /home/{username}/poco-1.9.0-all 是有效路径(看起来不像)。

    【讨论】:

    • 感谢您的回答。现在查看该库,我了解到 PocoMySQL 在该库的最新版本中已重命名为 PocoDataMySQL。使用 -lPocoDataMySQL 解决了这个问题。
    猜你喜欢
    • 2013-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-13
    • 1970-01-01
    相关资源
    最近更新 更多