QtCreator 빌드는 Collect2를 반환합니다.ld가 종료 상태 1을 반환했습니다.

StackOverflow https://stackoverflow.com/questions/1485239

  •  18-09-2019
  •  | 
  •  

문제

QtCreator에서 여러 다른 프로젝트를 빌드하는 동안 다음 빌드 오류가 발생했습니다.

collect2: ld returned 1 exit status

몇 가지 사항만 변경한 후에(빌드에서 중요한 내용을 변경해서는 안 됨) 이미 나타난 경우 사라지고, 없는 경우 나타납니다.

현재 학교 프로젝트 프로그램에서 rock03.cpp를 컴파일하려고 합니다.이는 빌드의 유일한 파일이며 main() 메서드를 갖습니다.방금 성공적으로 실행하고 일부 순서를 변경하기 위해 다시 돌아갔습니다. if()이제 관련 경고가 두 개만 표시됩니다.

overriding commands for target 'rock03.o'

그리고

ignoring old commands for target 'rock03.o'

문제의 오류와 함께.

왜 이런 일이 일어나는지 아는 사람이 있나요?합리적인 확실성을 가지고 오류를 재현할 수 없는 것 같으며 QtCreator는 빌드하기 전에 어떤 것에 대해서도 불평하지 않습니다.

감사해요

도움이 되었습니까?

해결책 10

"Compile Output"창을 확인하면 .pro 파일이 동일한 .cpp 파일을 두 번 연결하려고 시도한 것으로 나타났습니다.

다른 팁

유일한 메시지 오류가 링커와 관련된 메시지 오류 인 경우 프로그램이 여전히 실행 중이며 링커가 이진 파일에 액세스 할 수 없기 때문일 수 있습니다. 아직 실행중인 경우 응용 프로그램이 중지되었는지 확인하거나 죽여야합니다. QTCreator는 컴파일 전에 이전 실행이 중지되었는지 확인하지 않습니다.

헤더 파일에서 선언을 한 다음 CPP 파일에서 함수를 삭제하고 헤더에서 Deenleration을 삭제하는 것을 잊어 버리기 때문에 이것은 나에게 발생합니다. 예를 들어...

 //header file
class CLASS : public Q_OBJECT
{
...
protected:
void mouseMoveEvent(QMouseEvent*);
}

//source file

void CLASS::mouseMoveEvent(QMouseEvent*e)
{
...
}
    //I'll delete this, then forget to delete "void mouseMoveEvent(QMouseEvent*);" in the header file

컴파일러 출력은 오류로 오류로 얻는다면 실제로 도움이되지만 첫 번째 후보는 아마도 출력 프로그램을 열어 놓았으며 파일에 쓸 수 없다는 것입니다. 이와 같은 독방 수집 오류

이 오류는 링키지 문제로 인해 발생할 수 있습니다. 예를 들어, 'extern'지시문을 사용하여 헤더 파일에서 일부 정적 변수를 선언하는 것을 잊었습니다.

이는 기본 앱을 닫지 않을 때 발생합니다(따라서 출력 실행 파일은 계속 실행 중이지만 표시되는 창은 없음).예:

int main() {
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

이 앱은 기본 창을 닫으면 정상적으로 종료되지만 이 코드는

int main() {
    QApplication a(argc, argv);
    QDialog w;
    w.exec();
    return a.exec();
}

대화 상자를 닫을 때 앱이 닫히지 않습니다(적어도 저에게는).

해결책은 항상 기본 창을 만들고 닫는 것입니다.

제 경우에는 명확한 가상 기능을 선언했습니다.

void virtual Func(MouseEvent*); // Error.
void virtual Func(MouseEvent*) = 0; // Well!

제 경우에는 폴더 권한이 문제였습니다. "컴파일 출력"창을 확인하는 것은 문제가 무엇인지 정확히 찾는 데 중요합니다. (QTCreator는 그런 점에서 Visual Studio와 반대이므로 익숙해지기가 필요합니다.) 권한을 올바르게 설정하려고 시도했지만 그 후에는 작동하지 않은 것 같습니다. 결국 그림자 빌드를 비활성화 한 다음에갔습니다. "도구/옵션/빌드 및 실행/일반/프로젝트 디렉토리"및 "디렉토리"를 설정하십시오. ". 그런 다음 마침내 컴파일되었습니다. "그것은"QT 5.11의 KMAP2QMAP 프로젝트입니다.

누군가가 유용하다고 생각할 경우 내 2 센트입니다.

오류에 대한 더 많은 이유가있을 수 있습니다. 그러나 저에게는 클래스에서 사용되지 않은 슬롯을 제거 할 때 문제가 해결되었습니다.

나는 같은 문제가 있었다. 내 해결책은 - 모든 가상 함수와 모든 슬롯 선언을 구현하는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top