我和我的朋友正在將我們的軟件移植到Mac OSX上。該應用程序嚴重構建在SDL上,我們很難在Qt5中將SDL鏈接和編譯。我們沒有在我們的代碼中使用Qt的任何部分,除此之外,使用IDE進行跨平臺緩解。在Mac OSX上的Qt Creator中使用SDL
目前,我有SDL框架內/Library/Frameworks/
裏面application.pro我:
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += main.cpp
macx {
INCLUDEPATH += "/Library/Frameworks/SDL.framework/headers/"
}
在main.cpp
我顯然有#include "SDL.h"
,如果我按ctrl點擊SDL.h
它表明,它是連接框架...
當我去建立/編譯我得到這個錯誤:
14:21:24: Running steps for project BDGame...
14:21:24: Configuration unchanged, skipping qmake step.
14:21:24: Starting: "/usr/bin/make" -w
make: Entering directory `/Users/Kite/Dropbox/Wizardry Games/BDGame/BDGame-build-Desktop_Qt_5_0_0_clang_64bit_SDK-Release'
g++ -headerpad_max_install_names -mmacosx-version-min=10.6 -o BDGame main.o
Undefined symbols for architecture x86_64:
"_main", referenced from:
start in crt1.10.6.o
(maybe you meant: _SDL_main)
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make: *** [BDGame] Error 1
make: Leaving directory `/Users/Kite/Dropbox/Wizardry Games/BDGame/BDGame-build-Desktop_Qt_5_0_0_clang_64bit_SDK-Release'
14:21:24: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project BDGame (kit: Desktop Qt 5.0.0 clang 64bit (SDK))
When executing step 'Make'
我在做什麼不正確的是從使用SDL停止Qt的?
看起來您的SDL庫在框架中沒有64位版本,並且您正在構建64位版本。在繼續之前做一次清理並確保在MacOS下重建所有對象文件/庫。你應該能夠構建32位,如果你添加「CONFIG - = x86_64」和「CONFIG + = x86」到你的pro文件。 – koan
我試過這個,但是這似乎沒有改變任何東西。 –
您顯然正試圖鏈接到Intel 64位體系結構,這就是爲什麼您會收到「ld:symbol(s)not found for architecture x86_64」的原因。我不使用創建者,但是您在屏幕上選擇了64位clang的32位PPC架構。你的編譯器應該是「Clang(x86 64bit)」或者「GCC(x86 64bit)」 – koan