2012-10-24 5 views
1

가능한 중복은 :
What is an undefined reference/unresolved external symbol error and how do I fix it?클래스 정의되지 않은 참조

이것은 간단한 문제가 될해야하지만, 난 여전히 문제가 있습니다. 나는 비슷한 질문을 보았지만, 나는 그들이 찾고있는 것보다 조금 더 복잡해 보인다.

저는 Code :: Blocks 10.05를 사용하고 있습니다.

내 클래스 파일에 대한 정의되지 않은 참조가 나타납니다. 이 링커 오류 알지만 그것을 수정하는 방법을 잘 모르겠습니다. 나는 파일을 연결하는 것에 대해 잘 모릅니다.

s\Desktop\the cool container\Test 1\Class2.o:Class2.cpp|| undefined reference to `Burrito::Burrito()'| 
||=== Build finished: 1 errors, 0 warnings ===| 

내 모든 파일은 같은 폴더에 있습니다. 내 객체는 아무 것도하지 않는다. 나는 이것을 시험해보기 만하고 다른 클래스의 객체를 만드는 데 오류가 있어서는 안된다.

네, TheNewBoston 튜토리얼에서 가져온 것입니다 ... 그는이 작업을 할 수 있었으므로 제대로 작동 할 수 있어야합니다.

Class2.cpp에 #include "Burrito.cpp"을 포함하면 작동하지만 포함시키지 않았습니다.


------------ Class2.cpp -----------------

#include <iostream> 
#include "Burrito.h" 
using namespace std; 
int main(){ 

    Burrito Bo; 
    return 0; 
} 

- -------------- Burrito.h ----------------

#ifndef BURRITO_H 
#define BURRITO_H 


class Burrito 
{ 
    public: 
     Burrito(); 

}; 

#endif // BURRITO_H 

---------- ----- Burrito.cpp -----------------

#include "Burrito.h" 
#include<iostream> 

using namespace std; 
Burrito::Burrito() 
{ 

} 
+0

가장 가능성이 높습니다. (http://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved-external-symbol-error-and-how-do-i-fix/12574400 # 12574400) - 당신은'Burrito.cpp'를 컴파일하거나 링크하지 않습니다. –

+0

파일을 컴파일하여 실행 파일을 생성하는 방법을 자세히 설명하십시오. – sergio

+0

방금 ​​빌드하고 실행할 수 있다고 생각했는데 특별한 컴파일 작업을 수행해야한다는 것을 알지 못했습니다. 나는 그것을 들여다 볼 것이다. – user1771489

답변

0

Class2.cpp에 #include "Burrito.cpp"을 포함하면 작동하지만 포함시키지 않았습니다.

거의 해결책이 될 수는 없습니다. #include 다른 소스 파일에서 소스 파일로되어있는 내용을 나타내지 마십시오. 해결책은 컴파일해야하는 모든 파일을 컴파일하고 링커가 연결 문제를 처리하도록하는 것입니다.

Burrito.cpp를 컴파일하지 않았으므로 물론 연결 문제가 있습니다. 해결책은 간단합니다 : Burrito.cpp를 컴파일하고 링커에 제공하는 파일 세트에 Burrito.o를 추가하십시오. 또는 Class2.cpp와 Burrito.cpp를 모두 컴파일러에 제공하여 개체 파일 대신 출력을 실행 파일로 만들 수 있습니다.

+0

그런 것에 대해 읽었지만 어떻게 Burrito.cpp를 컴파일합니까? 나는 시간이있을 때 나중에 살펴볼 것입니다. – user1771489