Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Eclipse+CDT+MinGW, Проблемы с линкатором 
:(
    Опции темы
insidex
  Дата 23.11.2006, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 23.11.2006

Репутация: нет
Всего: нет



Здравствуйте, совсем недавно начал осваивать Си, установил себе кросс-платформенный IDE. Начал с разработки небольшого сетевого демона.
Однако при компиляции кода, выкидываются ошибки на различные функции типа:

Код

#include "windows.h"
    
#include <Winsock2.h>
#include<stdio.h>
#pragma comment(lib,"ws2_32.lib")
const int WINSOCK_VERSION = 0x0202;
void on_load()
{
    WSADATA wsaData;
    if (WSAStartup(WINSOCK_VERSION, &wsaData)) 
        {
            WSACleanup();
            printf("Error socket");
            exit(1);
        }
}
void on_exit()
{
    WSACleanup();
}


Error:
Код

undefined reference to `WSAStartup@8'
undefined reference to `WSACleanup@0'
undefined reference to `WSACleanup@0'


Пытался подключать библиотеку непосредственно в коде:
#pragma comment(lib, "ws2_32.lib")
и в отладчике (Project->Properties->Libraries)

Все равно выкидываются такие ошибки (и не только к сокетам,но и к другим функциям из сторонних библиотек)  smile 

Это сообщение отредактировал(а) insidex - 23.11.2006, 19:00
PM MAIL   Вверх
ptr
Дата 23.11.2006, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 661
Регистрация: 31.5.2006
Где: Новосибирск

Репутация: нет
Всего: 14



Код

#include <Winsock2.h>



--------------------
Единственный способ определить границы возможного - это выйти за эти границы, в невозможное.
Артур Кларк.
PM MAIL ICQ   Вверх
insidex
Дата 23.11.2006, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 23.11.2006

Репутация: нет
Всего: нет



Извиняюсь, забыл сюда скопировать, данный файл, конечно же, был подключен уже.


ps. По-прежнему такие же ошибки

Это сообщение отредактировал(а) insidex - 23.11.2006, 18:59
PM MAIL   Вверх
VectorMan
Дата 23.11.2006, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antihero
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 9.4.2006

Репутация: нет
Всего: 4



что то мне подсказывает что

Код

#pragma comment(lib, "ws2_32.lib")


это всё таки мелкософтовская прагма и gcc (а стало быть и mingw) её просто игнорирует

что касается настроек проекта, то библиотека сокетов называется libws2_32.a  smile 
PM   Вверх
insidex
Дата 23.11.2006, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 23.11.2006

Репутация: нет
Всего: нет



Может у меня makefile корявый, но gcc теперь начал материться на саму библиотеку (libws2_32.a)  smile 



MAKEFILE
Код

main : main.o
    g++ -o main main.o -L E:/MinGW/lib/gcc-lib/mingw32/3.2.3/ -lstdc++
main.o : main.cpp
    g++ -ggdb -c main.cpp
all :
    ${MAKE} main
clean :
    -del main.o

PM MAIL   Вверх
ptr
Дата 24.11.2006, 07:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 661
Регистрация: 31.5.2006
Где: Новосибирск

Репутация: нет
Всего: 14



Код

-lws2_32



--------------------
Единственный способ определить границы возможного - это выйти за эти границы, в невозможное.
Артур Кларк.
PM MAIL ICQ   Вверх
Любитель
Дата 24.11.2006, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: нет
Всего: 92



Сия прагма для линкера есть лишь в MS VC++ и Intel C++ for Windows.
В настройках проекта для линкера ставимбиблиотеку без расширения. lws2_32.


--------------------
PM MAIL ICQ Skype   Вверх
insidex
Дата 24.11.2006, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 23.11.2006

Репутация: нет
Всего: нет



Прилинковал....

Код

E:/MinGW/bin/../lib/gcc-lib/mingw32/3.2.3/../../../libmingw32.a(main.o)(.text+0x97):main.c: undefined reference to `WinMain@16


Вообщем, установлю себе что-нибудь мелкомягкое пока что, спасибо всем за помощь.
PM MAIL   Вверх
chipset
Дата 25.11.2006, 03:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: нет
Всего: 165



Я подозреваю что тебе надо правильное entry point установить или стартовать не с _tmain/main а WinMain.


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Любитель
Дата 25.11.2006, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: нет
Всего: 92



Да нет. Проверь настройки CDT: include и либ - пути.


--------------------
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | GNU toolchain | Следующая тема »


 




[ Время генерации скрипта: 0.0867 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.