|
아.. 2007에서 컴파일을 하셨군요..
일단 정확한 상황은 프로젝트 구성자체를 알수가 없어서 모르겠지만..
저도 이와 같은 상황은 격은적이 있었습니다.
깍지님의 상황가 같은것인지는 잘 모르겠습니다만.. 혹시 몰라 여기에 적습니다.
1. class method 의 경우 입니다.
2. class 의 method를 그냥 header 파일에 즉 class 선언 안에다가 method 자체를 작성 했습니다.
3. 이 클래스 파일을 bpl 로 만들었습니다.
4. 해당 bpl 을 link 하여 application에서 사용하였습니다. link 를 못하더군요.. unresolved 에러가 나더군요
5. 해결책으로 해당 메소드를 cpp 로 옮겼습니다.
6. 해결이 되더군요..
정확한 이유는 검사하지 않았습니다. 바빠서.. 일단 컴파일/링크가 되어서 위와 같이 해결은 해습니다만...
정확한 이유는 저도 파악전이라..
감으로는 header에 있으니 사용하는 쪽에 해당 함수에 대한 binary 가 생성 될 것이기에.. 이와 관련해서 발생하는 문지이겠지 하고 생각하고만 있습니다. Template 과 같은 상황일거라 생각해서...
정확한 답변을 드리지 못해 죄송합니다.
더운날씨에 몸건강 하세요~~
콩깍지.김구진 님이 쓰신 글 :
: 둘리님 먼저 답변 남겨주셔서 감사합니다^^
:
: Lib소스는 물론 있어서 2007로 빌드한 상태입니다.
: 이때 LIb를 빌드하는 옵션에서 Builder 6과 다른지.. 제대로 함수를 불러오지 못하더군요..
:
: Lib파일을 Builder 6에서 빌드해서 2007에서 사용하면 잘됩니다.
: 하지만 2007에서 Lib파일을 빌드해서 사용하려 하면 Lib내부 함수를 불러오지 못하네요..ㅠㅜ
:
: 이거저것 옵션을 넣다뺐다하면서 하곤있는데 아직까진 잘 안되고 있습니다^^;;
:
: 둘리 님이 쓰신 글 :
: : DLL과 다르게 Lib 는 static link 를 수행해야 합니다.
: :
: : lib 파일이 cbuilder 6에서 생산된 것이면 결국 cbuilder6의 vcl 및 lib 들을 물고 늘어질 것입니다.
: :
: : lib 소스가 있으시면 2007에서 다시 컴파일 하여 생성하시는것이 좋을듯 합니다만..
: :
: : 그렇지 않다면 cbuilder6 의 각종 필요한 library 등을 연결해 줘야 합니다.
: :
: : 일단 제가 테스트 한 바에 의하면 (bpl package 레벨을 가지고 테스트 했습니다)
: :
: : builder 6 -> 2007 로 가능하고 , 2007 -> builder 6 로도 가능 합니다.
: :
: : 문제는 컴파일 환경에 필요한 각종 파일들 (특히 vcl 관련이 다 6 와 2007 것 모두 필요하다는 것입니다)
: :
: : 수고하세요~~~
: :
: : 참고적으로: Unresolved external ~~~ 이런 에러는 이유는 딱 하나 링크 하려는 함수가 없다는 것이죠... 아니면 있어도 못찾는 것(이건 프로젝트 구성 환경에 좌우 되겠죠) 이죠...
: :
: :
: :
: :
: :
: : 콩깍지.김구진 님이 쓰신 글 :
: : : 자주 사용하는 모듈들을 Lib로 따로 빼줘서 만들었는데요..
: : : Builder 6에서는 빌드하고 사용하는데 아무런 문제가 없습니다.
: : :
: : : 하지만 2007에서는 위에서 컴파일한 Lib파일을 사용하는 프로젝트를 컴파일 할때
: : : "[ILINK32 Error] Error: Unresolved external ...." 이런식으로
: : :
: : : Lib파일에서 모듈을 제대로 불러오지 못하네요..
: : : Lib파일에는 폼도 조금 포함되어 있는데 폼 DFM도 불러오지 못한다며 컴파일이 안되네요..
: : :
: : : 제가 생각할때는 Lib를 컴파일할때 코드가 제대로 들어가지 않는거 같은데..
: : : Builder 6처럼 컴파일하려면 2007에선 옵션설정을 따로 해줘야 하는게 있나요?
: : : 2일째 좌절중입니다..ㅠㅠ 도와주십시요..
|