2008-10-03 4 views
1

라이브러리로 응용 프로그램을 구축하고 있지만 원하는 출력을 얻을 수 있도록 전환하여 exe를 생성했습니다. 최대한 빨리 해결되지 않은 외부 기호에 대한 몇 가지 오류가 발생했습니다.해결되지 않은 외부 기호 오류 빌드 라이브러리에서 exe 또는 dll로 전환

처음에는 내가 참조하고있는 제 3 자 라이브러리로 설정된 경로가 없으므로 폴더를 경로 변수에 추가하고 내 포함, 참조 및 소스 파일에 추가했습니다. 내가 모든 길을 가졌는지 확인하기 위해서.

나는 여전히 오류가

:

error LNK2019: unresolved external symbol "__declspec(dllimport) public: static void __cdecl xercesc_2_8::XMLPlatformUtils::Initialize(char const * const,char const * const,class xercesc_2_8::PanicHandler * const,class xercesc_2_8::MemoryManager * const,bool)" ([email protected]@[email protected]@[email protected]@[email protected]@[email protected]) referenced in function "void __cdecl xsd::cxx::xml::initialize(void)" ([email protected]@[email protected]@@YAXXZ)

내가 라이브러리로 구축 할 때 Visual Studio에서, 나는하지만, 이러한 에러가 발생하지 않았기 때문에 내가 여기 부탁 해요 이유는 dll과 exe, 나는 그렇다.

아무도 생각이 없습니까?

답변

2

라이브러리를 작성하면 링커에서 가져온 기호를 해석 할 필요가 없습니다. 이는 객체 파일과 라이브러리를 함께 연결하기 시작할 때만 발생합니다.

그래서 실행 파일을 만들 때 오류가 표시되기 시작했습니다.

실제로, VC2008 (및 잘 기억하는 경우 2005)에서 프로젝트 속성 -> 링커 -> 입력 -> 추가 종속성을 사용하십시오. 필요한 라이브러리는 공백으로 구분해야합니다 (홀수, 안녕하세요)

행운을 비네!

2

또한 해당 라이브러리와 특히 연결하려는 것을 지정해야합니다. 링크 경로는 단순히 링커에게 알려야 할 데이터가 어디인지를 알려주는 것이지 무엇을 찾아야하는지 알려주는 것입니다. 또한 해당 라이브러리 (xerces?)에 링크하도록 지정해야합니다.

불행히도 MSVC에서이를 지정하는 방법을 모르겠지만 아마도 '링커 옵션'아래에있을 것입니다.

0

@coppro가 말했듯이, 당신은 당신이 그 라이브러리와 링크하기를 원할 필요가 있습니다. EXE 또는 DLL을 빌드 할 때 링커가 실행되고 사용중인 모든 함수를 찾아 라이브러리를 작성해야하며 사서가 실행되며 모든 함수 참조를 확인할 필요는 없습니다 (단, 당신은 EXE에서 lib를 사용합니다. 다시해야합니다).

프로젝트의 옵션 인 링커 옵션 입력으로 이동하여 추가 라이브러리 경로 아래에 누락 된 함수 (xerces.lib?)를 정의하는 라이브러리를 나열하십시오. 추가 라이브러리 경로 아래에 위치를 추가해야 할 수도 있습니다.

관련 문제