![](/img/trans.png)
[英]How to link a dynamic library in QtCreator use qmake and MinGW32?
[英]QtCreator: Are dynamic library generated really “dynamic” on a Mac
我正在MacOS下與QtCreator合作,將iPhone定位為我的應用程序。 現在,我正在嘗試編譯第3方庫(tinyxml)。
我的.pro文件已經適用於Linux,Windows和Android目標,我只是想將其擴展到iOS。
我的第一個驚喜是生成的動態庫具有.a
擴展名。 應該不是.so
(甚至是.dynlib)嗎?
我的第二個驚喜是,當我生成帶有和不帶有CONFIG += staticlib
的庫時,它總是生成相同的二進制文件(實際上,相同的大小,內容被報告為不同,但是只能是SONAME標記)。 在每個其他平台上,靜態和動態庫二進制文件始終具有不同的大小。
難道我做錯了什么? 實際上,我是否總是在靜態生成庫(這可以解釋擴展名始終是.a
),如果是,如何強制進行動態生成?
動態.pro文件:
#Generated by SDE CMake scripts!
CONFIG(release, debug|release) {
TARGET = tinyxml
}
CONFIG(debug, debug|release) {
TARGET = tinyxml-g
}
QT -= core
QT -= gui
CONFIG(debug, debug|release) {
DEFINES += _DEBUG
}
win32: DEFINES += TINYXML_EXPORTS
SOURCES += \
/Users/less/Documents/dev/vobs_ext/libcpp/tinyxml/src/tinystr.cpp \
/Users/less/Documents/dev/vobs_ext/libcpp/tinyxml/src/tinyxml.cpp \
/Users/less/Documents/dev/vobs_ext/libcpp/tinyxml/src/tinyxmlerror.cpp \
/Users/less/Documents/dev/vobs_ext/libcpp/tinyxml/src/tinyxmlparser.cpp
TEMPLATE = lib
INCLUDEPATH += \
/Users/less/Documents/dev/vobs_ext/libcpp/tinyxml/./tinyxml
靜態.pro文件:
#Generated by SDE CMake scripts!
CONFIG(release, debug|release) {
TARGET = tinyxmls
}
CONFIG(debug, debug|release) {
TARGET = tinyxmls-g
}
QT -= core
QT -= gui
CONFIG(debug, debug|release) {
DEFINES += _DEBUG
}
win32: DEFINES += TINYXML_EXPORTS
QMAKE_CXXFLAGS += -DTINYXML_STATIC
SOURCES += \
/Users/less/Documents/dev/vobs_ext/libcpp/tinyxml/src/tinystr.cpp \
/Users/less/Documents/dev/vobs_ext/libcpp/tinyxml/src/tinyxml.cpp \
/Users/less/Documents/dev/vobs_ext/libcpp/tinyxml/src/tinyxmlerror.cpp \
/Users/less/Documents/dev/vobs_ext/libcpp/tinyxml/src/tinyxmlparser.cpp
TEMPLATE = lib
CONFIG += staticlib
INCLUDEPATH += \
/Users/less/Documents/dev/vobs_ext/libcpp/tinyxml/./tinyxml
得到它了。
對於Windows和Android目標,默認庫構建是動態的,因此除了TEMPLATE += lib
之外,我再也不需要放置其他任何東西。 在Mac上,默認情況下是靜態的。 因此,要生成動態庫(.dylib),必須通過添加CONFIG += shared
來請求它。
這樣可以編譯,但是在部署時會崩潰。 我將其發布在另一個線程上: 適用於iOS的QtCreator:如何使用我的應用程序部署dylib共享庫
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.