在Qt Creator中使用外部Lib / DLL?

时间:2010-10-04 19:21:46

标签: c++ qt

我决定在整个上午发生一系列令人头疼的事情后,使用Qt Creator进行我的第一个Qt项目可能会比MSVC更好(编译过多的问题)。

我想知道如何通过Qt Creator添加我的外部工具所需的.dlls和.libs。我发现这篇文章Adding external library into Qt Creator project是有道理的。

我需要更多信息,例如......我首先链接dll或libs,在qmake中将dll添加到构建步骤的语法是什么(我假设它接近win32:LIBS + = path / to /Psapi.lib)

谢谢!

1 个答案:

答案 0 :(得分:14)

使用QtCreator / gcc

编译外部库

如果您拥有库的源代码,则这是.pro文件,用于从中创建外部库(.dll和.a)或Framework(在Mac OS X上):

TEMPLATE = lib

INCLUDEPATH = <your-include-paths>
HEADERS += <your-headers>
SOURCES += <your-sources>
TARGET = MyLib  /* The name of your libary */

/* Win32: To generate a MyLib.dll and libMyLib.a (gcc) or MyLib.lib (MSVC) file */
win32 {
    CONFIG += dll
}

/* Just in case you need to generate Mac Frameworks: */
macx {
    CONFIG += shared lib_bundle
    FRAMEWORK_HEADERS.version = Versions
    FRAMEWORK_HEADERS.files += <your library headers>
    /* Example:
    FRAMEWORK_HEADERS.files += /path/to/your/lib/MyLib.h
    */
    FRAMEWORK_HEADERS.path = Headers
    QMAKE_BUNDLE_DATA = FRAMEWORK_HEADERS
    VERSION = 0.5.0   // a framework version you can define
}

将外部库添加到QtCreator / gcc项目

/* your project settings */

/* If you compile on windows */
win32 {
    /* If you compile with QtCreator/gcc: */
    win32-g++:LIBS += /path/to/your/libMyLib.a

    /* IF you compile with MSVC: */
    win32-msvc:LIBS += /path/to/your/libMyLib.lib
}

/* If compile on Mac and want to link against a framework */
macx {
    LIBS+= -framework MyLib
    QMAKE_FLAGS += -F/path/to/MyLib
}

请注意,要将外部库与gcc一起使用,您需要包含链接信息的libMyLib.a文件。 libMyLib.lib由MS Visual Studio生成,无法由gcc afaik处理!