我是使用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中查找?
答案 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。