如何一次创建静态库和动态库?我使用的是qt 5.1。我想有一个.pro
文件,它同时支持两种lib类型。我需要它用于Windows和Linux。我找到了类似的东西:
CONFIG += staticlib
但我怎样才能建立共享的呢?
这是我目前的例子(对于.so):
ROOT_DIR = ./..
INCLUDE_DIR = $$ROOT_DIR/include
SRC_DIR = $$ROOT_DIR/src
BIN_DIR = $$ROOT_DIR/bin
LIB_DIR = $$ROOT_DIR/lib
MAKE_DIR = .
unix {
MOC_DIR = $$ROOT_DIR/moc
OBJECTS_DIR = $$ROOT_DIR/obj
}
win32 {
MOC_DIR = $$ROOT_DIR/moc.win
OBJECTS_DIR = $$ROOT_DIR/obj.win
}
QT -= gui
TARGET = test
TEMPLATE = lib
DESTDIR = $$BIN_DIR
DEFINES += TEST_LIBRARY
SOURCES += Test.cpp
HEADERS += Test.h\
test_global.h
有人可以告诉我如何添加静态库吗?正如我所说,它也适用于Windows,因此,我需要正确的库。谢谢到目前为止!
答案 0 :(得分:5)
还没有答案?在我找到这个解决方案之前,我一直在摸不着头脑:
CONFIG += shared_and_static build_all
这会在两个sparate目录(两个'mode')中生成两个版本的编译对象(我的相同),称为shared
和static
以及两个makefile(Makefile.Shared
和{{1 }})能够制作两个目标。
通过添加Makefile.Static
,两个目标都会连续生成。
希望它有所帮助。
答案 1 :(得分:0)
正如文档所述,这与CONFIG
变量无关。您可以将其留空,或使用其中一个有效值。查看qmake variable reference。
变量TEMPLATE
是您要查找的变量,它应该具有值lib
。这足以构建静态库和动态库。