c++ - gsoap - 使用 -lcrypt 编译

标签 c++ ubuntu gsoap

我在 ubuntu 中使用 C++ 代码工作。我正在使用 gsoap 来连接到服务器。我已经获得了所有必要的数据。我也成功连接到服务器。我仍然有一个问题。为什么需要在命令行写:g++ test_server.cpp -o testServ libgsoap++.a。如果我在我的文件夹中包含所有依赖项,为什么我需要在我的命令行中包含 libgsoap++.a? 编辑:

如果我不在命令行中包含 libgsoap++.a,我有:

undefined reference to `soap_embed'
/tmp/ccyeN0df.o: In function `soap_serialize_string(soap*, char* const*)':
TEST.cpp:(.text+0xb9de): undefined reference to `soap_reference'
/tmp/ccyeN0df.o: In function `soap_out_string(soap*, char const*, int, char* const*, char const*)':
TEST.cpp:(.text+0xba15): undefined reference to `soap_outstring'
/tmp/ccyeN0df.o: In function `soap_in_string(soap*, char const*, char**, char const*)':

最佳答案

您需要告诉 g++ 您想要使用 -lgsoap++ 链接到 libgsoap++。

如果你想链接非系统版本的 libgsopa++,你需要通过 -L 标志指定 g++ 的库路径。

简短说明:

您有链接时错误。编译成功并生成目标文件。在编译期间,您“ promise ”(通过包含 gsoap 包含文件)soap_serialize_string 等存在于某处,并且目标代码可用。

现在链接器尝试从目标文件生成可执行文件。它检查目标文件中的所有“ promise ”并尝试解决它:用调用实际函数替换它。这种“实际功能”存在于何处?在您的情况下,它是 libgsoap++.a。

因此,如果您不告诉链接器链接到 libgsoap++.a,promises 就只是 promises,并且您有 undefined reference 。

关于c++ - gsoap - 使用 -lcrypt 编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7334081/

相关文章:

c++ - 使用 Thrift 和 Qt 的简单服务器

c++ - 如何正确使用 LoadImage 和 DeleteObject?

c++ - 使用 openmp + SIMD 没有加速

git - 试图删除 ubuntu guest 上的 git repo

c++ - 编译一个简单的 Gsoap 服务

session - 如何检测 session 是否有效或过期?

c++ - 如何使用 CTypedPtrArray

python - 如何在 Flask Peewee ORM 中设置 Postgres 用户名和密码?

android - 如何在linux ubuntu中提取和设置android ndk .bin文件的路径?

c++ - Gsoap Http 事件回调