linker — неопределенная ссылка на функции в программе на C ++ с использованием SimpleSocket, написанной с использованием Code :: Blocks

Я пытаюсь написать программу на C ++ в Code :: Blocks, которая использует SimpleSockets. Файлы в моей программе находятся в моей программе: main.cpp, simplesocket.cpp, passivesockets.cpp, activesockets.cpp, simplesocket.h, passivesockets.h, activesockets.h. Все эти файлы находятся в одном каталоге и включены в main.cpp с использованием кавычек (#include «simplesocket.h»). Когда я пытаюсь скомпилировать его, я получаю некоторые из следующих ошибок.

————— Сборка: отладка в sys32 —————

g ++. exe -Wall -g -I «C: \ Documents and Settings \ Администратор \ Мои документы \ Загрузки \ curl-7.27.0-devel-mingw32» -IC: \ MinGW \ mingw32 -IC: \ MinGW \ lib \ gcc \ mingw32 -IC: \ MinGW \ lib \ gcc \ mingw32 \ 4.7.0 -IC: \ MinGW \ lib \ gcc \ mingw32 \ 4.7.0 \ include -IC: \ MinGW \ lib \ gcc \ mingw32 \ 4.7.0 \ include \ c ++ \ backward -IC: \ MinGW \ lib \ gcc \ mingw32 \ 4.7.0 \ include \ c ++ \ mingw32 -c C: \ system32 \ sys32 \ main.cpp -o obj \ Debug \ main.o
В файле из C: \ system32 \ sys32 \ ActiveSocket.h: 46: 0,
из C: \ system32 \ sys32 \ main.cpp: 2:

неопределенная ссылка на `_htons @ 4

неопределенная ссылка на `_inet_addr @ 4

неопределенная ссылка на `_inet_addr @ 4

неопределенная ссылка на…………..

неопределенная ссылка на…………..

Эти ошибки происходят из SimpleSockets.cpp, PassiveSockets.cpp и ActiveSockets.cpp. Из того, что я могу найти в StackOverflow, этот тип ошибки является ошибкой компоновки. я нашел это сообщение файлы добавляются в проект, и это не работает. В StackOverflow много всего, но я не могу найти способ заставить его работать. Я ищу, где в code :: blocks я мог бы вручную связать другие файлы .cpp. Я даже пытался изменить компиляторы с migw32-g ++ на g ++, просто чтобы посмотреть, что произойдет.

Я также пытался собрать с помощью команды -lw2_32.lib, но все равно получаю те же ошибки. Ниже приведен вывод после добавления этой команды.

————— Сборка: отладка в sys32 —————

g++.exe -Wall  -g  -lws2_32.lib   -I"C:\Documents and Settings\Administrator\My Documents\Downloads\curl-7.27.0-devel-mingw32" -IC:\MinGW\mingw32 -IC:\MinGW\lib\gcc\mingw32 -IC:\MinGW\lib\gcc\mingw32\4.7.0 -IC:\MinGW\lib\gcc\mingw32\4.7.0\include -IC:\MinGW\lib\gcc\mingw32\4.7.0\include\c++\backward -IC:\MinGW\lib\gcc\mingw32\4.7.0\include\c++\mingw32  -c C:\system32\sys32\PassiveSocket.cpp -o obj\Debug\PassiveSocket.oIn file included from C:\system32\sys32\ActiveSocket.h:46:0,from C:\system32\sys32\PassiveSocket.h:45,from C:\system32\sys32\PassiveSocket.cpp:43:

PassiveSocket.cpp:70: undefined reference to htons@4
PassiveSocket.cpp:78: undefined reference to htonl@4
PassiveSocket.cpp:82: undefined reference to inet_addr@4

Спасибо еще раз за помощь.

0

Решение

Я понимаю, что вы используете Code :: blocks + MinGW Combo и не любой другой компилятор.

Перейдите в Проект-> Параметры сборки
Перейдите на вкладку «Настройки компоновщика» и добавьте следующее в многострочное текстовое поле «Другие параметры компоновщика»: —

-lwsock32
-lws2_32

Не забудьте поместить каждую запись в новую строку.
Обратите внимание, что я пропустил расширение файла «.lib»

2

Другие решения

положил -lws2_32.lib во время компиляции.

0

По вопросам рекламы [email protected]