簡體   English   中英

QtCreator:動態庫在Mac上是否真的“動態”生成

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM