wsdlpull:链接错误与g ++

时间:2016-04-07 07:27:36

标签: c++ g++

我是使用g ++编写c ++的新手,并且在让wsdlpull-library工作时遇到很大问题。版本是1.24。

我按照http://wsdlpull.sourceforge.net/。:

的安装步骤进行操作
./configure --prefix=/home/jesse/Dropbox/Programmering/C++/test --disable-opt --enable-examples
make
make install

然后我将print.cpp文件从示例复制到"前缀" -directory。下一步是"在您的包含路径中添加$(prefix)/include,并将$(prefix)/libs-lwsdl -lschema -lxmlpull添加到您的LDFLAGS"。第一个问题是没有文件夹" libs"但是" lib"并且include文件夹中有另一个名为wsdlpull的文件夹。因此,我改为输入以下命令:

g++ -I include/wsdlpull -L lib -lwsdl -lschema -lxmlpull -o print print.cpp

这导致以下错误:

  

/ usr / bin / ld:找不到-lwsdl
      / usr / bin / ld:找不到-lschema
      / usr / bin / ld:找不到-lxmlpull
      collect2:错误:ld返回1退出状态

我不知道这意味着什么,当我指向" lib"为什么它会在/ usr / bin / ld中查找?

1 个答案:

答案 0 :(得分:0)

当您使用-L lib时,表示lib目录位于您pwd make lib。检查您是否说lib确实可用。

为简单起见,您可以提供-L<path to lib>/lib文件夹的绝对路径。 即make。这有助于lib在没有任何混淆的情况下看到libwsdl

接下来,您可能希望明确指定/lib or /usr/lib or /use/local/lib是静态库还是共享库。虽然这是可选的。

或者,最好的解决方案是将库放在系统库中的位置,即ldconfig并运行-lwsdl,以便链接器/加载器知道新添加的库的存在位置。在这种情况下,您可以简单地发出-L而不指定p标记。

有关详细信息,请参阅ldconfig