qt 下编译静态库
程序员文章站
2022-03-30 18:53:04
...
静态库
MathFunctions.pro
#-------------------------------------------------
#
# Project created by QtCreator 2013-07-23T19:50:46
#
#-------------------------------------------------
QT -= gui
TARGET = MathFunctions
TEMPLATE = lib
CONFIG += staticlib
SOURCES += mathfunctions.cpp
HEADERS += mathfunctions.h
unix:!symbian {
maemo5 {
target.path = /opt/usr/lib
} else {
target.path = /usr/lib
}
INSTALLS += target
}
mathfunctions.h
#ifndef MATHFUNCTIONS_H
#define MATHFUNCTIONS_H
class MathFunctions
{
public:
MathFunctions();
static unsigned long int factorial(unsigned int n);
};
#endif // MATHFUNCTIONS_H
mathfunctions.cpp
#include "mathfunctions.h"
MathFunctions::MathFunctions()
{
}
unsigned long int
MathFunctions::factorial(unsigned int n)
{
switch(n)
{
case 0: return 0;
case 1: return 1;
default: return n * factorial(n-1);
}
}
链接静态库
#-------------------------------------------------
#
# Project created by QtCreator 2013-07-23T20:43:19
#
#-------------------------------------------------
QT += core
QT -= gui
CONFIG(release, debug|release):
DEFINES += QT_NO_DEBUG_OUTPUT
TARGET = MathFunctionsTest
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../build-MathFunctions-Desktop_Qt_5_3_0_MinGW_32bit-Debug/release/ -lMathFunctions
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../build-MathFunctions-Desktop_Qt_5_3_0_MinGW_32bit-Debug/debug/ -lMathFunctions
else:unix: LIBS += -L$$PWD/../build-MathFunctions-Desktop_Qt_5_3_0_MinGW_32bit-Debug/ -lMathFunctions
INCLUDEPATH += $$PWD/../MathFunctions
DEPENDPATH += $$PWD/../MathFunctions
win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/../build-MathFunctions-Desktop_Qt_5_3_0_MinGW_32bit-Debug/release/libMathFunctions.a
else:win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/../build-MathFunctions-Desktop_Qt_5_3_0_MinGW_32bit-Debug/debug/libMathFunctions.a
else:win32:!win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/../build-MathFunctions-Desktop_Qt_5_3_0_MinGW_32bit-Debug/release/MathFunctions.lib
else:win32:!win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/../build-MathFunctions-Desktop_Qt_5_3_0_MinGW_32bit-Debug/debug/MathFunctions.lib
else:unix: PRE_TARGETDEPS += $$PWD/../build-MathFunctions-Desktop_Qt_5_3_0_MinGW_32bit-Debug/libMathFunctions.a
main.cpp
#include <QCoreApplication>
#include <QDebug>
#include "mathfunctions.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
int values[] = { 6, 7, 8 };
for(int i = 0; i < sizeof(values)/sizeof(int); i++)
{
qDebug() << values[i]
<< "! = "
<< MathFunctions::factorial(values[i]);
}
return a.exec();
}