Здравствуйте. Решил изучить c++ и сразу же наткнулся на одну проблему. Инструмент в котором я создаю или пытаюсь создать код начинает ругаться. На вкладки Linker выходит список:
c:\documents and settings\freeloader\my documents\dev-c++project\ftpbr\untitled1.o(.text+0x208):untitled1.cpp: undefined reference to `InternetOpenA@20'
c:\documents and settings\freeloader\my documents\dev-c++project\ftpbr\untitled1.o(.text+0x255):untitled1.cpp: undefined reference to `InternetConnectA@32'
c:\documents and settings\freeloader\my documents\dev-c++project\ftpbr\untitled1.o(.text+0x28a):untitled1.cpp: undefined reference to `InternetCloseHandle@4'
заголовочный файл wininet.h приинклудил. Что не так?
На вкладке Compiler никаких проблем не возникает, хотя до нее наверное очередь не доходит.
Здравствуйте, freeloader, Вы писали:
F>c:\documents and settings\freeloader\my documents\dev-c++project\ftpbr\untitled1.o(.text+0x208):untitled1.cpp: undefined reference to `InternetOpenA@20' F>c:\documents and settings\freeloader\my documents\dev-c++project\ftpbr\untitled1.o(.text+0x255):untitled1.cpp: undefined reference to `InternetConnectA@32' F>c:\documents and settings\freeloader\my documents\dev-c++project\ftpbr\untitled1.o(.text+0x28a):untitled1.cpp: undefined reference to `InternetCloseHandle@4'
Нужно ещё Wininet.lib линковать;
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
"В любое мгновение принятия решения, лучшее, что вы можете сделать, это принять правильное решение; следующим лучшим вариантом будет принять неправильное решение, худший вариант – не принимать решения совсем" (c) Теодор Рузвельт.
Здравствуйте, freeloader, Вы писали:
N>>Нужно ещё Wininet.lib линковать;
F>Как это сделать?
#pragma comment(lib, "Wininet.lib")
, или изучи опции компилятора;
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
"В любое мгновение принятия решения, лучшее, что вы можете сделать, это принять правильное решение; следующим лучшим вариантом будет принять неправильное решение, худший вариант – не принимать решения совсем" (c) Теодор Рузвельт.
Здравствуйте, freeloader, Вы писали:
F>код вставил, результатов никаких
Давай полный лог сборки;
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
"В любое мгновение принятия решения, лучшее, что вы можете сделать, это принять правильное решение; следующим лучшим вариантом будет принять неправильное решение, худший вариант – не принимать решения совсем" (c) Теодор Рузвельт.
Re: Dev-C++ [проблема линковки]
От:
Аноним
Дата:
26.10.06 13:14
Оценка:
Внимательно изучи, что вы написали в include — ах. Очень похоже на последствия опечатки в навании какой-то либы.
ошибка линковщика:
c:\dev-c++\project\c\ftpbr\untitled1.o(.text+0x208):untitled1.cpp: undefined reference to `InternetOpenA@20'
c:\dev-c++\project\c\ftpbr\untitled1.o(.text+0x255):untitled1.cpp: undefined reference to `InternetConnectA@32'
c:\dev-c++\project\c\ftpbr\untitled1.o(.text+0x28a):untitled1.cpp: undefined reference to `InternetCloseHandle@4'
че делать блин не знаю...
Аноним:
Я весь день долблюсь с этой ошибкой, я уже эти инклуды по тыщи раз проверял, более того я в них и залазил и искал там эти прототипы, все вери вел, компилятор ни слово не говорит, а линкер никак не хочет запускать программу.
Re[3]: Dev-C++ [проблема линковки]
От:
Аноним
Дата:
27.10.06 07:34
Оценка:
Здравствуйте, freeloader, Вы писали:
F>Я весь день долблюсь с этой ошибкой, я уже эти инклуды по тыщи раз проверял, более того я в них и залазил и искал там эти прототипы, все вери вел, компилятор ни слово не говорит, а линкер никак не хочет запускать программу.
Библиотеку wininet подключали? ( -lwininet к опциям)
Ну и чисто эстетическое замечание: что это за имена для файлов untitled1.cpp ?
Стало еще веселее. Вчера узнал, что есть более свежая среда, поставил, теперь и компилятор начал ругаться:
Вот что выдает компилятор:
[Linker error] undefined reference to `InternetOpenA@20'
[Linker error] undefined reference to `InternetConnectA@32'
[Linker error] undefined reference to `InternetCloseHandle@4'
ld returned 1 exit status
C:\Dev-Cpp\project\c\ftpbr\5version\Makefile.win [Build Error] [pro.exe] Error 1
А это вылазит в журнале компиляции!:
Компилятор: Default compiler
Building Makefile: "C:\Dev-Cpp\project\c\ftpbr\5version\Makefile.win"
Выполнение make...
make.exe -f "C:\Dev-Cpp\project\c\ftpbr\5version\Makefile.win" all
g++.exe main.o -o "pro.exe" -L"C:/Dev-Cpp/lib"
main.o(.text+0x271):main.cpp: undefined reference to `InternetOpenA@20'
main.o(.text+0x2e1):main.cpp: undefined reference to `InternetConnectA@32'
main.o(.text+0x315):main.cpp: undefined reference to `InternetCloseHandle@4'
collect2: ld returned 1 exit status
make.exe: *** [pro.exe] Error 1
Выполнение завершено
Библиотеку вроде как подключил, как советал np9mi7, таким вот образом, воощем со всеми инклудами, выглядит это так:
#include <cstdlib>
#include <iostream>
///#include <stdio.h>
#include <wininet.h>
#include <string.h>
#pragma comment(lib, "Wininet.lib")
P.S. программа очень маленькая и заключается всего в одном модуле, поэтому мне кажется, такие имена можно допустить.
Re[5]: Dev-C++ [проблема линковки]
От:
Аноним
Дата:
27.10.06 08:50
Оценка:
Здравствуйте, freeloader, Вы писали:
F>P.S. программа очень маленькая и заключается всего в одном модуле, поэтому мне кажется, такие имена можно допустить.
Попробуй подключит не через прагму, а указать в строке компиляции среди прочих параметров через параметр -l
g++ твояпрога.cpp -o твояпрога.exe -lwininet
Если код маленький и несекретный, то может кинешь его сюда?
Здравствуйте, freeloader, Вы писали:
F>Да какой секрет...
Успешно откомпилировалась и даже вроде отработала.
Компилировал следующей строчкой:
g++ untitled1.cpp -o untitled1.exe -lwininet
Наличие прагмы похоже ни на что не влияет, я ее закомментировал и всё равно всё прошло нормально. Правда я использовал не Bloodshed, а чистый mingw, но компилятор-то всё-равно один и тотже, Bloodshed -- просто IDE над mingw.