我是新手用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 回答
当您使用
-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 .