2009-07-28 6 views
0

이것은 정말 간단해야합니다. Qt (newmat library)에 라이브러리를 컴파일하고 libnewmat.a 파일을 만들었습니다. 이제이 라이브러리를 다른 프로젝트에 통합해야하지만 작동시키지 못합니다.Qt에 라이브러리가 포함 된 이유는 무엇입니까?

내가 포함 내 .PRO 파일에 LIBS 변수를 몇 가지 다른 일을 시도했다 :

Win32:LIBS += libnewmat.a #library is in same directory as the project 

Win32:LIBS += "C:/...path.../libnewmat.a" 

Win32:LIBS += L"C:/...path..." -lnewmat 

심지어 앞으로 사용하여 시도하고 다시 경로에 슬래시하지만이 차이를하지했습니다.

!exists(libnewmat.a) { 
    error("libnewmat.a does not exist") 
} 

그래서 나는 그 문제가 아니라는 것을 알고 : 나는 또한이 검사는 라이브러리가 실제로 발견되어 있는지 확인하기 위해 포함되어 있습니다. 필자가 이해하지 못하는 것은 컴파일러 출력 (qmake가 명령 행에서 사용하는 명령을 표시 함)을 Ctrl + F로 누르면 라이브러리에 대한 참조를 찾을 수 없다는 것입니다. 어떤 이유로 나는 LIBS 변수가 명령 줄에 어떤 변화도주지 않고있다.

g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"..\..\..\..\Qt\2009.02\qt\include\QtCore" -I"..\..\..\..\Qt\2009.02\qt\include\QtGui" -I"..\..\..\..\Qt\2009.02\qt\include\QtOpenGL" -I"..\..\..\..\Qt\2009.02\qt\include" -I"..\Visual Studio Projects\NewMatProj\newmat10" -I"..\..\..\..\Qt\2009.02\qt\include\ActiveQt" -I"debug" -I"." -I"..\..\..\..\Qt\2009.02\qt\mkspecs\win32-g++" -o debug\moc_Window.o debug\moc_Window.cpp 
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -Wl,-subsystem,windows -o debug\GLPractice.exe debug/main.o debug/GLWidget.o debug/Window.o debug/CGSWidget.o debug/moc_GLWidget.o debug/moc_Window.o -L"c:\Qt\2009.02\qt\lib" -lopengl32 -lglu32 -lgdi32 -luser32 -lmingw32 -lqtmaind -lQtOpenGLd4 -lQtGuid4 -lQtCored4 

나는 내가 여기에 누락 정말 간단한 일이 생각 : 사람이 한 번 확인하고 싶은 경우에 여기에 내가 라이브러리를 참조 할 기대 컴파일러 출력의 샘플입니다.

Windows Vista에서 QtCreator를 사용하고 있습니다. 내가 바로 그 문제를했습니다

win32:LIBS += libnewmat.a # lowercase w 

답변

4

나는 범위 조건이 대소 문자를 생각합니다. 정적 라이브러리에서 정적 라이브러리에 링크하는 것이 가능하지 않습니까? 여하튼 .pro 파일에서 CONFIG+=static을 제거하여 공유 라이브러리를 만들면이 문제를 피할 수 있습니다.

건배, H

0

:

0

유 프로 파일에 libs가 많이 필요 없어요. 이거 해봐, 나에게 도움이 됐어.

Win32 : INCLUDEPATH + =.

는 Win32 : LIBS + = "C :/... ... 경로/libnewmat.a"

또는

는 Win32 : DEPENDPATH = +.

는 Win32 : LIBS + = "C :/... 경로 .../libnewmat.a"또한

libnewmat.a 일반적으로 윈도우 libs와 lib 디렉토리 확장자가 .. 리눅스 라이브러리 수 있습니다 .. 확실하지 그래도 ..

-Arps

관련 문제