2013-09-23 2 views
0

qt 5.1로 vt2010으로 컴파일 된 정적 라이브러리를 사용할 때 문제가 있습니다. qt5.1을 사용하고 있습니다. vs2010 컴파일러로 /로 컴파일되었습니다.정적 라이브러리를 사용할 때 qt creator qt5.1 vs2010 링커 오류

내 간단한 라이브러리 모양의 소스를 다음과 같이

Lib_Test.h

#pragma once 
#include <iostream> 

class Lib_Test 
{ 
    public: 
    Lib_Test(void); 
    ~Lib_Test(void); 

    void HelloTest(); 
}; 

Lib_Test.cpp을

이 두 파일은 내 "Lib_Test.lib"로 컴파일됩니다
#include "Lib_Test.h" 

Lib_Test::Lib_Test(void) 
{ 
} 

Lib_Test::~Lib_Test(void) 
{ 
} 

void Lib_Test::HelloTest() 
{ 
    std::cout << "Hello World!"; 
} 

. 라이브러리 호출을 단순화하기 위해 lib와 헤더 파일을 "C :/Qt /"에 복사했습니다. (A C에 대한 ++ 콘솔 응용 프로그램) 내 Qt는 프로젝트 파일 :

QT  += core 
QT  -= gui 

TARGET = Lib_Test_Qt 
CONFIG += console 
CONFIG -= app_bundle 

TEMPLATE = app 

SOURCES += main.cpp 

INCLUDEPATH += C:/Qt 
DEPENDPATH += C:/Qt 

win32:CONFIG(release, debug|release): LIBS += -LC:/Qt/ 
win32:CONFIG(release, debug|release): LIBS += -lLIB_Test 

그리고 마지막으로 MAIN.CPP

#include <QCoreApplication> 
#include <Lib_Test.h> 

int main(int argc, char *argv[]) 
{ 
     QCoreApplication a(argc, argv); 

     Lib_Test *lb = new Lib_Test(); 
     lb->HelloTest(); 

     return a.exec(); 
} 

나는 다음과 같은 오류 메시지가 Qt는 창조주의 프로젝트를 빌드 할

정적 메서드로 HelloTest 메서드를 선언하고 Lib_Test 인스턴스를 만들지 않고 호출하려고하면 비슷한 오류가 발생합니다. 메시지

main.obj:-1: Fehler:LNK2019: unresolved external symbol "public: static void __cdecl Lib_Test::HelloTest(void)" ([email protected][email protected]@SAXXZ) referenced in function _main 
debug\Lib_Test_Qt.exe:-1: Fehler:LNK1120: 1 unresolved externals 

내가 무엇이 누락 되었습니까? someboody 도움이 될 수 있습니까? 지금 당황 스럽네요. /.

편집 :

은 내가 msvs2010 콘솔에서 DUMPBIN/SYMBOLS Lib_Test.lib을 시도하고 내가 가진 전부입니다

Microsoft (R) COSS/PE Dumper Version 10.00.40210.01 
Copytight (C) Microsoft Corporation. All right reserved 


Dump of file Lib_Test.lib 

File Type: LIBRARY 

는 내 라이브러리는 어떻게 든 비어 있음을 의미 하는가? :/

당신의 qmake를 파일에서

답변

0

변경 는 Win32 : CONFIG (릴리스, 디버그 | 자료) : LIBS + = -C :/Qt는/-lLib_Test 는 Win32 : CONFIG (릴리스, 디버그 | 자료) : PRE_TARGETDEPS + = C : /Qt/Lib_Test.lib

win32:CONFIG(release, debug|release): LIBS += -LC:/Qt/ 
win32:CONFIG(release, debug|release): LIBS += -lLib_Test 

또는

win32:CONFIG(release, debug|release): LIBS += -LC:/Qt/ 
win32:CONFIG(release, debug|release): LIBS += -l_Test 

으로 나는 그들 중 하나가 작동한다고 생각합니다. 그리고 Build menu로 간 다음 qmake를 실행하는 것을 잊지 마십시오.

+0

HelloTest를 정적 함수로 호출하려고 할 때 HelloTest를 멤버 함수로 호출하려고 할 때 첫 번째 오류를 두 번 시도했지만 해결되지 않은 외부 기호 오류가 발생합니다. '. 나는 당신의 제안을 내 게시물에 적용 할 것이다. –