图书馆之间的冲突

时间:2018-08-22 14:13:28

标签: c++ eclipse poco-libraries

我知道这个问题已经问过几次了,但是经过一天的搜寻,我仍然无法解决。我正在尝试使用POCO C ++库,并且安装了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 ++构建->设置->工具设置-> GCC C ++编译器->包含->包含路径(-I)包含/ home / {用户名} /poco-1.9.0-all/include

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

C / C ++构建->设置->工具设置-> GCC C ++链接器->库->库搜索路径(-L)包含/ home / {用户名} /poco-1.9.0-all/lib

1 个答案:

答案 0 :(得分: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是有效路径(看起来不一样)。