QT-Mac:使用阿里雲OSS sdk,在Mac OS10.13版本上執行崩潰
阿新 • • 發佈:2021-01-20
1.問題現象:
使用阿里雲OSS SDK來上傳圖片,在MacOS 10.14,10.15等平臺上都能正常工作,但是在10.13版本上發現異常崩潰,奔潰日誌如下:
Process: Exam_Client [24258] Path: /Applications/Exam_Client.app/Contents/MacOS/Exam_Client Identifier: com.ats.examclient Version: 4.0.1 (4.0.1) Code Type: X86-64 (Native) Parent Process: ??? [1] Responsible: Exam_Client [24258] User ID: 501 Date/Time: 2021-01-19 11:04:52.186 +0800 OS Version: Mac OS X 10.13.6 (17G14042) Report Version: 12 Bridge OS Version: 3.0 (14Y901) Anonymous UUID: 78496B48-3A4B-38AA-A4EA-34D632A3414C Sleep/Wake UUID: 9487B19A-C280-4B75-95DE-00F774AB7FE6 Time Awake Since Boot: 250000 seconds Time Since Wake: 4300 seconds System Integrity Protection: enabled Crashed Thread: 0 CrBrowserMain Dispatch queue: com.apple.main-thread Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Exception Note: EXC_CORPSE_NOTIFY Termination Reason: DYLD, [0x4] Symbol missing Dyld Error Message: Symbol not found: ____chkstk_darwin Referenced from: /Applications/Exam_Client.app/Contents/MacOS/Exam_Client Expected in: /usr/lib/libSystem.B.dylib
2.問題定位
通過檢視程式執行日誌,發現當執行到上傳圖片時,程式崩潰退出,判斷是使用的oss的庫可能不支援10.13平臺
3.問題解決
重現編譯阿里雲oss sdk,按照阿里雲OSS SDK安裝文件下載sdk原始碼,重點在於編譯時需要指定一下庫支援的平臺,我們在aliyun-oss-cpp-sdk目錄下找到CMakeLists.txt檔案,開啟並編輯它,在設定第一個project之前新增如下一行:
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.13" CACHE STRING "Minimum OS X deployment version")
然後按照編譯說明 執行 CMake 和make指令即可。