在gsoap下用gcc编译服务端程序时报undefined reference to `soap_serve',请问这是什么原因

在gsoap下用gcc编译服务端程序时报undefined reference to `soap_serve',请问这是什么原因,第1张

一般出现这个问题说明,在编译时已经正确找到头文件mathh,但在链接时因为没有合适的编译选项来包括数学库。所以,这样做的结果是可以产生o的目标文件,但不会有可执行文件。

解决方法很简单,直接在编译选项中添加 -lm 即可。如下:

gcc testc -lm -o test

-lxx

xx是你的so文件名

其实使用方法和你使用数学库函数是一样的,源代码中添加

#include <mathh>,编译的时候,加上-lm参数。

注:linux下的so文件为共享库,相当于windows下的dll文件。

扩展资料:

 

linux下编写调用so文件实例

so是Linux(Unix)下的动态链接库 和dll类似

比如:

文件有: ac, bc, cc

gcc -c ac

gcc -c bc

gcc -c cc

gcc -shared libXXXso ao bo co

要使用的话也很简单 比如编译dc, 使用到libXXXso中的函数, libXXXso地址是MYPATH 

gcc dc -o d -LMYPATH -lXXX

注意不是-llibXXX

testc文件和一个testh,这两个文件要生成libsotestso文件。然后我还有一个testsoc文件,在这个文件里面调用libsotestso中的函数。

编写的过程中,首先是编译so文件,我没有编写makefile文件,而是参考的2里面说的直接写的gcc命令。

因为so文件里面没有main函数,所以是不可执行的,所以编译的时候要加上-c,只生成目标文件。

以上就是关于在gsoap下用gcc编译服务端程序时报undefined reference to `soap_serve',请问这是什么原因全部的内容,包括:在gsoap下用gcc编译服务端程序时报undefined reference to `soap_serve',请问这是什么原因、请问我有一个.so文件,如何在Linux下编程使用呢、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10118994.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存