gpt4 book ai didi

ios - 在 iOS qbs 项目中包含 AVFoundation

转载 作者:行者123 更新时间:2023-11-28 23:55:17 31 4
gpt4 key购买 nike

我正在使用 Xcode 9.4.1 和 Qt 5.11,目前有一个可用的 .pro 文件用于在 iOS 上运行我的 Qt 应用程序。

只是为了好玩,我想尝试 qbs,因为我真的很喜欢它的语法。我现在尝试编写一个镜像我的 .pro 文件的 .qbs 文件。

一切都编译得很好,但是当链接时,我在尝试运行 ios 模拟器时遇到以下问题(对于 ios 来说类似,但具有不同的架构):

Undefined symbols for architecture x86_64:
"_AVAudioSessionCategoryPlayback", referenced from:
-[MyClass enable] in MediaPlayer.mm.o
"_MPMediaItemPropertyArtist", referenced from:
-[MyClass setMediaInfo:artist:] in MediaPlayer.mm.o
"_MPMediaItemPropertyTitle", referenced from:
-[MyClass setMediaInfo:artist:] in MediaPlayer.mm.o
"_OBJC_CLASS_$_AVAudioSession", referenced from:
objc-class-ref in MediaPlayer.mm.o
"_OBJC_CLASS_$_MPNowPlayingInfoCenter", referenced from:
objc-class-ref in MediaPlayer.mm.o
"_OBJC_CLASS_$_MPRemoteCommandCenter", referenced from:
objc-class-ref in MediaPlayer.mm.o
ld: symbol(s) not found for architecture x86_64

我在 .pro 文件中所做的包含框架的操作是:

LIBS += -framework MediaPlayer -framework AVFoundation

对于我写的 .qbs:

cpp.frameworks: base.concat(["MediaPlayer", "AVFoundation"])

also tried:

cpp.frameworkPaths: base.concat(["/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/Frameworks"])
cpp.frameworks: base.concat(["MediaPlayer", "AVFoundation"])

and:

cpp.frameworks: ["MediaPlayer", "AVFoundation"]

我已经被这个问题困扰了几个小时,并且很难在网上和 Github 上找到 qbs 文件的类似用法。谁知道为什么链接器找不到框架?

编辑

我尝试使用 qbs 创建一个新项目,但我遇到了类似的问题。这是完整的构建日志:

19:12:55: Running steps for project Test...
linking Test (x86_64, debug)
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -Wl,-arch,x86_64,-ios_simulator_version_min,10.0,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk,-e,_qt_main_wrapper -stdlib=libc++ -L/Users/john/Qt/5.11.1/ios/lib -L/Users/john/Qt/5.11.1/ios/plugins/platforms -target x86_64-apple-ios10.0-macho -o /Users/john/build-Test-Qt_5_11_1_for_iOS_Simulator-Debug/qtc_Qt_5_11_1_for_iOS_Simulator_Debug/Test.eyJhcmNoaXRlY3R1cmUiOiJ4ODZfNjQiLCJidWlsZFZhcmlhbnQiOiJkZWJ1ZyJ9.260986be/.tmp/Test /Users/john/build-Test-Qt_5_11_1_for_iOS_Simulator-Debug/qtc_Qt_5_11_1_for_iOS_Simulator_Debug/Test.eyJhcmNoaXRlY3R1cmUiOiJ4ODZfNjQiLCJidWlsZFZhcmlhbnQiOiJkZWJ1ZyJ9.260986be/3a52ce780950d4d9/main.cpp.o /Users/john/build-Test-Qt_5_11_1_for_iOS_Simulator-Debug/qtc_Qt_5_11_1_for_iOS_Simulator_Debug/Test.eyJhcmNoaXRlY3R1cmUiOiJ4ODZfNjQiLCJidWlsZFZhcmlhbnQiOiJkZWJ1ZyJ9.260986be/3a52ce780950d4d9/qrc_qml.cpp.o -framework MobileCoreServices -framework Foundation -framework UIKit -framework CoreFoundation -framework Foundation -framework CoreFoundation -framework MobileCoreServices -framework Foundation -framework UIKit -framework CoreFoundation -framework CoreGraphics -framework Foundation -framework OpenGLES -framework CoreText -framework UIKit -framework QuartzCore -framework CoreText -framework CoreGraphics -framework Foundation -framework CoreFoundation -framework AudioToolbox -framework MobileCoreServices -framework Foundation -framework UIKit -framework CoreFoundation -framework Security -framework CoreFoundation -framework MobileCoreServices -framework Foundation -framework UIKit -framework CoreFoundation -framework Security -framework MobileCoreServices -framework Foundation -framework UIKit -framework CoreFoundation -framework Security -framework CoreGraphics -framework OpenGLES -framework CoreText -framework MobileCoreServices -framework Foundation -framework UIKit -framework CoreFoundation -framework Security -framework OpenGLES /Users/john/Qt/5.11.1/ios/lib/libQt5Core_debug.a -lz -lm -lm -lz -lqtpcre2_debug /Users/john/Qt/5.11.1/ios/lib/libQt5Gui_debug.a -lz -lm /Users/john/Qt/5.11.1/ios/lib/libQt5Core_debug.a -lm -lz -lqtpcre2_debug -lqtlibpng_debug -lqtharfbuzz_debug -lz /Users/john/Qt/5.11.1/ios/lib/libQt5Network_debug.a -lz -lm /Users/john/Qt/5.11.1/ios/lib/libQt5Core_debug.a -lm -lz -lqtpcre2_debug -lz /Users/john/Qt/5.11.1/ios/lib/libQt5Qml_debug.a @/Users/john/build-Test-Qt_5_11_1_for_iOS_Simulator-Debug/qtc_Qt_5_11_1_for_iOS_Simulator_Debug/Test.eyJhcmNoaXRlY3R1cmUiOiJ4ODZfNjQiLCJidWlsZFZhcmlhbnQiOiJkZWJ1ZyJ9.260986be/plugins.list.d -lz -lm /Users/john/Qt/5.11.1/ios/lib/libQt5Network_debug.a /Users/john/Qt/5.11.1/ios/lib/libQt5Core_debug.a -lm -lz -lqtpcre2_debug /Users/john/Qt/5.11.1/ios/lib/libQt5Quick_debug.a -lz -lm /Users/john/Qt/5.11.1/ios/lib/libQt5Qml_debug.a /Users/john/Qt/5.11.1/ios/lib/libQt5Gui_debug.a -lqtlibpng_debug -lqtharfbuzz_debug /Users/john/Qt/5.11.1/ios/lib/libQt5Network_debug.a /Users/john/Qt/5.11.1/ios/lib/libQt5Core_debug.a -lm -lz -lqtpcre2_debug /Users/john/Qt/5.11.1/ios/lib/libQt5Network_debug.a /Users/john/Qt/5.11.1/ios/lib/libQt5Core_debug.a -lm -lz -lqtpcre2_debug -framework MobileCoreServices -framework Foundation -framework UIKit -framework CoreFoundation -framework Foundation -framework CoreFoundation -framework MobileCoreServices -framework Foundation -framework UIKit -framework CoreFoundation -framework CoreGraphics -framework Foundation -framework OpenGLES -framework CoreText -framework UIKit -framework QuartzCore -framework CoreText -framework CoreGraphics -framework Foundation -framework CoreFoundation -framework AudioToolbox -framework MobileCoreServices -framework Foundation -framework UIKit -framework CoreFoundation -framework Security -framework CoreFoundation -framework MobileCoreServices -framework Foundation -framework UIKit -framework CoreFoundation -framework Security -framework MobileCoreServices -framework Foundation -framework UIKit -framework CoreFoundation -framework Security -framework CoreGraphics -framework OpenGLES -framework CoreText -framework MobileCoreServices -framework Foundation -framework UIKit -framework CoreFoundation -framework Security -framework OpenGLES
Undefined symbols for architecture x86_64:
"_qt_main_wrapper", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Process failed with exit code 1.
The following products could not be built for configuration qtc_Qt_5_11_1_for_iOS_Simulator_Debug:
Test {"architecture":"x86_64","buildVariant":"debug"}
Error while building/deploying project Test (kit: Qt 5.11.1 for iOS Simulator)
When executing step "Qbs Build"
19:12:57: Elapsed time: 00:02.

我安装了 Xcode 9.4.1,然后安装了适用于 macOS 和 ios 的 Qt 5.11。

编辑2

它在桌面上构建良好,但当我切换到 ios 或 ios-simulator 时,我在我的 .qbs 文件中收到此警告:

enter image description here

编辑3

这是我对相关套件的 qbs 设置:

enter image description here

最佳答案

据我所知,_qt_main_wrapper 符号是通过平台插件传入的。所以你可以自己添加依赖:

Depends { name: "Qt.qios" } // I think that's the name...

或者您可以使用 QtGuiApplication 项(而不是 Product 或 CppApplication 或您现在使用的任何内容),它会自动处理此问题。

关于ios - 在 iOS qbs 项目中包含 AVFoundation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51368595/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com