首页 文章

wsdlpull:与g链接错误

提问于
浏览
0

我是新手用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 文件复制到"prefix" -directory . 下一步是“在您的包含路径中添加 $(prefix)/include 并将 $(prefix)/libs-lwsdl -lschema -lxmlpull 添加到 LDFLAGS ". The first problem is that there's no folder " libs " but " 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

    当您使用 -L lib 时,表示 lib dir在 pwd 中可用,您正在执行 make . 检查您是否说 lib 确实可用 .

    为简单起见,您可以给出 lib 文件夹的绝对路径 . 即 -L<path to lib>/lib . 这将有助于 make 看到 lib 而不会有任何混淆 .

    接下来,您可能希望显式指定 libwsdl 是静态库还是共享库 . 虽然这是可选的 .

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

    有关详细信息,请参阅ldconfig .

相关问题