Error ld returned 1 exit status как исправить
Перейти к содержимому

Error ld returned 1 exit status как исправить

  • автор:

ошибка: 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) — такая же ошибка. Если убрать эту функцию, то код снова нормально работает. Подскажите, что делать? Вот текущий код с одним из вариантов функции, делающий скриншот:

#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++

Author24 — интернет-сервис помощи студентам

Выдает «[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.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *