ошибка: collect2: error: ld returned 1 exit status
Работаю через QT Creator. Создал проект, назвал test.
1) Скачал библиотеку curl
2) Скопировал из распакованного архива библиотеки curl все файлы из папки /home/n199a/curl/include/ в папку /usr/include/curl
n199a@n199a:~$ ls /usr/include/curl curl.h easy.h Makefile.in multi.h system.h curlver.h Makefile.am mprintf.h stdcheaders.h typecheck-gcc.h
3) В файл test.pro проекта дописал:
LIBS += -lcurl
4) Пытаюсь скомпилировать и выдается ошибка:
ошибка: collect2: error: ld returned 1 exit status
У меня Linux Mint. В ней по умолчанию предустановлена библиотека curl, но почему её не было в папке /usr/include/ ? Сам код программы:
//подключаем необходимые заголовочные файлы #include #include #include //подключаем стандартное пространство имен using namespace std; //объявляем буфер, для хранения возможной ошибки, размер определяется в самой библиотеке static char errorBuffer[CURL_ERROR_SIZE]; //объялвяем буфер принимаемых данных static string buffer; //функция обратного вызова static int writer(char *data, size_t size, size_t nmemb, string *buffer) < //переменная - результат, по умолчанию нулевая int result = 0; //проверяем буфер if (buffer != NULL) < //добавляем к буферу строки из data, в количестве nmemb buffer->append(data, size * nmemb); //вычисляем объем принятых данных result = size * nmemb; > //вовзращаем результат return result; > //главная функция int main(void) < //необходимые CURL объекты CURL *curl; CURLcode result; //инициализируем curl curl = curl_easy_init(); //проверяем результат инициализации if (curl) < //задаем все необходимые опции //определяем, куда выводить ошибки curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errorBuffer); //задаем опцию - получить страницу по адресу http://google.com curl_easy_setopt(curl, CURLOPT_URL, "google.com"); //указываем прокси сервер curl_easy_setopt(curl, CURLOPT_PROXY, "proxy:8080"); //задаем опцию отображение заголовка страницы curl_easy_setopt(curl, CURLOPT_HEADER, 1); //указываем функцию обратного вызова для записи получаемых данных curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writer); //указываем куда записывать принимаемые данные curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buffer); //запускаем выполнение задачи result = curl_easy_perform(curl); //проверяем успешность выполнения операции if (result == CURLE_OK) //выводим полученные данные на стандартный вывод (консоль) cout //завершаем сессию curl_easy_cleanup(curl); return 0; >
«[Error] ld returned 1 exit status» постоянно, от разных реализаций функций, делающих скрин
Понадобилась функция, делающая скриншот в программе и сохраняющая его в файл. Я нашёл несколько таких функций, но каждая (!) из них при добавлении в программу заставляет её выдавать при компиляции вот такую ошибку: C:\<папка_с_файлом.cpp>\collect2.exe [Error] ld returned 1 exit status Причём других ошибок нет, или я их исправляю. Обычно такая ошибка происходит, когда у меня код уже скомпилирован и запущен .exe, и я пытаюсь ещё раз его скомпилировать и запустить. Но, разумеется, я всё перепробовал, даже запускал код на другом компе (но тоже в Dev) — такая же ошибка. Если убрать эту функцию, то код снова нормально работает. Подскажите, что делать? Вот текущий код с одним из вариантов функции, делающий скриншот:папка_с_файлом.cpp>
#include //Ws2_32.lib #include #include #include #include #include #include //getch #include #include #include #include #include //#include #define ever (;;) #include #pragma comment(lib, "GdiPlus.lib") //Тут всякий другой код. Вообще, программа для работы с сетью (это клиент). //Но она даже не запускается, выдаёт ту ошибку. using namespace std; using namespace Gdiplus; static const GUID png = < 0x557cf406, 0x1a04, 0x11d3, < 0x9a, 0x73, 0x00, 0x00, 0xf8, 0x1e, 0xf3, 0x2e >>; int PrtScr() < GdiplusStartupInput gdiplusStartupInput; ULONG_PTR gdiplusToken; GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL); HDC scrdc, memdc; HBITMAP membit; scrdc = GetDC(0); int Height, Width; Height = GetSystemMetrics(SM_CYSCREEN); Width = GetSystemMetrics(SM_CXSCREEN); memdc = CreateCompatibleDC(scrdc); membit = CreateCompatibleBitmap(scrdc, Width, Height); SelectObject(memdc, membit); BitBlt(memdc, 0, 0, Width, Height, scrdc, 0, 0, SRCCOPY); HBITMAP hBitmap; hBitmap =(HBITMAP) SelectObject(memdc, membit); Gdiplus::Bitmap bitmap(hBitmap, NULL); char PerMin[12]; strcpy (PerMin,"screen.png" ); bitmap.Save((WCHAR*)PerMin, &png,NULL); DeleteObject(hBitmap); return 0; >///////////////////////////////////////////////////// int main() < printf ("OK1\n"); getch(); PrtScr(); printf ("OK2\n"); getch(); //Тут всякий иной код return 0; >
Отслеживать
23.8k 3 3 золотых знака 47 47 серебряных знаков 61 61 бронзовый знак
задан 10 мая 2015 в 21:40
71 1 1 золотой знак 2 2 серебряных знака 4 4 бронзовых знака
Полный лог сборки, думаю, поможет лучше понять что же у вас происходит.
11 мая 2015 в 7:47
А не забыли ли вы подлинковать Ws2_32.lib?
11 мая 2015 в 15:14
@VladD, а это разве может являться причиной? Ведь это библиотеки, которые относятся к советам, но никак не к получению скриншота
11 мая 2015 в 20:03
@Владимир: Ну, у вас же есть #include
11 мая 2015 в 20:05
Столкнулся с подобной проблемой. Оказалось , что в секции private slots указан несуществующий обработчик события. Это стало возможным после переименования кнопки.
Как исправить ошибку collect2.exe: error: ld returned 1 exit status?
На довольно давней версии mingw, имевшейся у меня, получилось сделать вот так — запустив компилятор и линкер раздельно.
PATH %PATH%;d:\MinGW\x86\bin g++ -fopenmp -c main.cpp -o main.o g++ -o test.exe main.o -lgomp pause
Заодно пришлось скачать pthreads для win32, по умолчанию библиотеки (*.a) есть, а dll нет.
И вообще, это зависит от сборки MinGW. На свежих сборках mingw-w64 — как с Win32-, так и с posix-потоками — всё заработало именно по-твоему. И pthreads нашёлся.
PATH %PATH%;d:\MinGW\i686-5.2.0-win32-dwarf-rt_v4-rev0\mingw32\bin\ g++ -fopenmp main.cpp -o test.exe pause
Ну и, конечно, ты не указал, ПОЧЕМУ линкер вышел с кодом 1. Но это я уже сам понял, поэкспериментировав.
Ошибка компиляции [Error] ld returned 1 exit status — C++

Выдает «[Error] ld returned 1 exit status»
В чем ошибка и как быть?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
#include using namespace std; int main() { int ivar; double dvar; ivar = 100; dvar = 100.0; cout "Started Ivar" ivar "n"; cout "Started Dvar" dvar "n"; cout "n"; ivar = ivar * 3; dvar = dvar * 3; cout "Finish Ivar" ivar "n"; cout "Finish Dvar" dvar "n"; return 0; }
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Ошибка компиляции [Error] ld returned 1 exit status
При компиляции на Dev-C++ выдаёт ld returned 1 exit status: #include <iostream> using namespace.

Ошибка компиляции [Error] ld returned 1 exit status
Выдает ошибку " ld returned 1 exit status" #include <iostream> #include <math.h> #define M_PI.
[Error] ld returned 1 exit status ошибка компилятора C++
Помогите, пожалуйста, разобраться, компилятор выдает ошибку " ld returned 1 exit status". Искал в.
Ошибка [Error] ld returned 1 exit status (Dev — C++)
#include<iostream> using namespace std ; int mul(int x , int y ) ; int mul() < int.