VS 2005에서 다른 프로젝트에 정의된 오브젝트 참조불가..ㅠㅠ
글쓴이: litnsio2 / 작성시간: 화, 2007/04/17 - 12:02오후
머.. 이런내용은 아무래도 데브피아가 낫겠지만, 데브피아 안간지 3년은 넘은것 같고, firefox로 글하나 올리려면 왠지 열통터질것 같아서 이곳에 질문을 드립니다.. 꾸벅.
음 다름이 아니라 VS 2005에서 C++ 솔루션을 하나 만들고 이 아래에 몇개의 프로젝트를 만들었습니다.
그중 하나는 유닛테스트 프로젝트인데요, 다른 프로젝트에 있는 클래스를 사용하려고 하다보니(소스, 헤더 모두 다른 폴더에 존재), 이놈이 클래스 생성자를 못찾고 계속 링크 오류를 내는군요. 이를위한 옵션이 분명 있긴 할텐데.. (프로젝트속성-공용속성-참조 인줄 알았는데 아닌것 같군요ㅠㅠ)
정녕 다른 프로젝트에 있는 오브젝트를 인스턴스화 해서 사용할 길이 없는 것인지.. 조언부탁드립니다. ㅠㅠ
Forums:
질문이 명확하지
질문이 명확하지 않아요.
생성자를 못찾는다는 건지
아니면 다른 프로젝트의 오브젝트를 못찾는다는 건지.
다른 프로젝트는 라이브러리겠죠?
음..
밥먹기 전에 쓴글이라 좀 대충 썼는데, 죄송합니다.-.-;
솔루션S 아래에 프로젝트 P1 P2 가 있고..
P1는 기본 APP에 해당하는 프로젝트이고 (P1 아래에 C1, C2, C3 라는 클래스가 있다고 가정하죠..)
P2는 유닛테스트용 프로젝트입니다.
P2에서 C1 에 대한 유닛테스트를 하려고 하는데,
void TestCase::testC1()
{
C1 c;
assertEquals(cond1);
assertEquals(cond2);
...
}
이런 코드를 작성하면 문제가 생깁니다.
public: __thiscall InsertQuery::InsertQuery(void)" (??0InsertQuery@@QAE@XZ) 외부 기호(참조 위치: "private: void __thiscall TestQuery::testInsertQuery(void)" (?testInsertQuery@TestQuery@@AAEXXZ) 함수)에서 확인하지 못했습니다.
즉 testSomething에서 객체 c를 만들지 못한다는 소리인데요,
---
생성자를 못찾는다는 건지
아니면 다른 프로젝트의 오브젝트를 못찾는다는 건지.
---
제 질문의 맥락에서는 두 질문이 결국 같은 의미인 것 같습니다. (생성자가 있다는건 아는데 어디있는지 모른다 => 분명 생성자 코드는 오브젝트 파일에 있을테니 말이죠)
---------------------
Weird, huh?
http://janbyul.com
--- 생성자를
---
생성자를 못찾는다는 건지
아니면 다른 프로젝트의 오브젝트를 못찾는다는 건지.
---
제 질문의 맥락에서는 두 질문이 결국 같은 의미인 것 같습니다. (생성자가 있다는건 아는데 어디있는지 모른다 => 분명 생성자 코드는 오브젝트 파일에 있을테니 말이죠)
===
달라요.
extern C1 c;
에서 링크 에러를 내면 c 오브젝트를 못찾는다는 거고
지금은 C1의 생성자를 못찾는다는 거예요.
혹시 C1의 생성자가 들어있는 obj나 lib 파일을 같이 링크하셨어요?
음..
obj 파일은 어떻게 링크를 시켜야 할까요? -.-a
---------------------
Weird, huh?
http://janbyul.com
프로젝트 - 프로젝트
프로젝트 - 프로젝트 종속성을 설정해보세요.
(P2 가 P1 에 종속성을 가지게끔 말이죠)
댓글 달기