Компиляция примера приложения с использованием gsoap и Qt 4.6 на Win 7 - PullRequest
1 голос
/ 05 апреля 2011

Я пытаюсь скомпилировать пример расчета, описанный в gsoap website , но безуспешно. Вот как выглядит мой .pro файл.

 QT += network \
    xml
QT -= gui
TARGET = gsoap_c
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp \
    soapcalcProxy.cpp \
    stdsoap2.cpp \
    soapC.cpp
HEADERS += soapcalcProxy.h \
    stdsoap2.h \
    soapH.h \
    calc.h
OTHER_FILES += calc.nsmap

Когда я компилирую приложение, я получаю 93 неопределенных ссылки. Ниже приведены некоторые из них

C:\Users\Drena\Desktop\project\qt\gsoap_c/stdsoap2.cpp:593: undefined reference to `sendto@24'
C:\Users\Drena\Desktop\project\qt\gsoap_c/stdsoap2.cpp:595: undefined reference to `send@16'
C:\Users\Drena\Desktop\project\qt\gsoap_c/stdsoap2.cpp:629: undefined reference to `WSAGetLastError@0'
C:\Users\Drena\Desktop\project\qt\gsoap_c/stdsoap2.cpp:933: undefined reference to `recvfrom@24'
C:\Users\Drena\Desktop\project\qt\gsoap_c/stdsoap2.cpp:936: undefined reference to `ntohl@4'
C:\Users\Drena\Desktop\project\qt\gsoap_c/stdsoap2.cpp:941: undefined reference to `recv@16'
C:\Users\Drena\Desktop\project\qt\gsoap_c/stdsoap2.cpp:3557: undefined reference to `WSAStartup@8'
C:\Users\Drena\Desktop\project\qt\gsoap_c/stdsoap2.cpp:3615: undefined reference to `inet_addr@4'
C:\Users\Drena\Desktop\project\qt\gsoap_c/stdsoap2.cpp:3647: undefined reference to `gethostbyname@4'
C:\Users\Drena\Desktop\project\qt\gsoap_c/stdsoap2.cpp:3728: undefined reference to `socket@12'
C:\Users\Drena\Desktop\project\qt\gsoap_c/stdsoap2.cpp:3760: undefined reference to `setsockopt@20'
C:\Users\Drena\Desktop\project\qt\gsoap_c/stdsoap2.cpp:3902: undefined reference to `htons@4'
C:\Users\Drena\Desktop\project\qt\gsoap_c/stdsoap2.cpp:4310: undefined reference to `ioctlsocket@12'
C:\Users\Drena\Desktop\project\qt\gsoap_c/stdsoap2.cpp:4400: undefined reference to `__WSAFDIsSet@8'
C:\Users\Drena\Desktop\project\qt\gsoap_c/stdsoap2.cpp:4397: undefined reference to `select@20'
C:\Users\Drena\Desktop\project\qt\gsoap_c/stdsoap2.cpp:4531: undefined reference to `closesocket@4'
C:\Users\Drena\Desktop\project\qt\gsoap_c/stdsoap2.cpp:4542: undefined reference to `shutdown@8'
C:\Users\Drena\Desktop\project\qt\gsoap_c/stdsoap2.cpp:4608: undefined reference to `socket@12'
C:\Users\Drena\Desktop\project\qt\gsoap_c/stdsoap2.cpp:4699: undefined reference to `bind@12'
C:\Users\Drena\Desktop\project\qt\gsoap_c/stdsoap2.cpp:4956: undefined reference to `WSACleanup@0'

Кажется, мне не хватает сетевой библиотеки. Может кто-нибудь, пожалуйста, помогите мне скомпилировать этот пример.

Спасибо.

Ответы [ 2 ]

4 голосов
/ 05 апреля 2011

Решено: Я должен был посмотреть на этот пост ранее. Это решило мою проблему. Виноват. Просто копирую решение из этого поста для полноты картины.

** добавьте LIBS + = C: \ MinGW \ lib \ libws2_32.a в ваш файл * .pro. libws32_a - это текущая версия устаревшего файла libwsock32.a. **

2 голосов
/ 13 марта 2013

Вы также можете просто добавить «LIBS + = -lws2_32», компилятор должен найти правильный путь к библиотеке для вас.

...