@kill94

Как исправить ошибку collect2.exe: error: ld returned 1 exit status?

#include <iostream>
#include <ctime>
#include <omp.h>
#include <stdlib.h>
#include "stdio.h"

using namespace std;

const int MAX_RAND = 100;

int **OutMass(int N){
	int **Mas = new int*[N];
	for (int i = 0; i < N; i++)
		Mas[i] = new int[N];
	for (int i = 0; i < N; i++)
	for (int j = 0; j < N; j++)
		Mas[i][j]=rand();
	return Mas;
}

int main(int argc, char* argv[])
{
	srand(time(NULL));
	omp_set_num_threads(4);
	int N = argc != 0 ? atol(argv[1]) : 10; 
	int **A = OutMass(N);
	int **B = OutMass(N);
	int **C = new int*[N];
	for (int i = 0; i < N; i++)
		C[i] = new int[N];
	double t1 = omp_get_wtime();
#pragma omp parallel for
	for (int i = 0; i < N; ++i)
	{
		for (int j = 0; j < N; ++j)
		{
			C[i][j] = 0;
			for (int k = 0; k < N; ++k)
				C[i][j] += A[i][k] * B[k][j];
		}
	}
	double t2 = omp_get_wtime();
	printf("Execution time   : %.5f s\n", t2 - t1);
	printf("Timer resolution : %.5f s\n", omp_get_wtick());

	return 0;
}


батник:
PATH=%PATH%;c:\MinGW\bin
g++ -fopenmp test.cpp -o test.exe
pause

в чем проблема? при запуске выдает ошибку
collect2.exe: error: ld returned 1 exit status
  • Вопрос задан
  • 25165 просмотров
Пригласить эксперта
Ответы на вопрос 2
@ssv32
Такая ошибка может быть если то что вы компилируете и запускаете уже запущено
Ответ написан
Комментировать
@Mercury13
Программист на «си с крестами» и не только
На довольно давней версии 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. Но это я уже сам понял, поэкспериментировав.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы