这似乎应该是很简单的。我编译的Qt库(这 newmat库),并制作了文件libnewmat.a。现在我需要这个库集成到其它项目,但我不能得到它的工作。

我试过在我的.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")
}

所以我知道这是没有问题的。我不理解的是,当我Ctrl + F键的编译器的输出(其显示qmake的在命令行使用命令),我没有找到到库中的任何参考。出于某种原因,我的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

我怀疑有很简单的东西,我很想念这里。

我使用QtCreator在Windows Vista上。

有帮助吗?

解决方案

我想的范围条件是大小写敏感的:

win32:LIBS += libnewmat.a  # lowercase w

其他提示

我有非常相同的问题。是不是可以从一个静态库链接到静态库?总之,如果你用卸妆共享库的 CONFIG+=static 的从.pro文件你避免这个问题。

干杯, ħ

ü不需要在亲文件很多林达。试试这个,它为我工作。

的Win32:INCLUDEPATH + =。

的Win32:LIBS + = “C:/ ...路径... / libnewmat.a”

的Win32:DEPENDPATH + =

的Win32:LIBS + = “C:/ ...路径... / libnewmat.a”

此外libnewmat.a可能是linux的库..通常窗户库拥有的.lib扩展..不知道,但..

-Arps

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top