我在ubuntu的C++代碼下工作。我正在使用gsoap來連接到服務器。我已經獲得了所有的數據。我也成功連接到服務器。我仍然有一個問題。爲什麼需要在命令行中寫入:g ++ test_server.cpp -o testServ libgsoap ++。a。爲什麼我需要在我的命令行中包含libgsoap ++。a,如果我確實在我的文件夾中包含了所有依賴關係? 編輯:gsoap - 使用-lcrypt編譯
如果我不包括libgsoap ++一個命令行,我有:
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*)':
但o確實在我的.cpp文件中包含了所有依賴文件,其中包含:.h,.cpp文件(soap.h accpuntsoap.h ..)。爲什麼它不起作用? – sunset
在包含文件中,您只能指定編譯時的依賴關係。您還需要鏈接到相應的目標代碼(本例中包含在共享庫中) –