首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“命令未找到”在macOS上用苹果硅片运行通用控制台应用程序

“命令未找到”在macOS上用苹果硅片运行通用控制台应用程序
EN

Stack Overflow用户
提问于 2022-07-27 10:38:03
回答 1查看 36关注 0票数 0

我的图书馆有个问题-- 苹果硅片上的DllNotFoundException。它现在是固定的,但我们观察到了一些奇怪的行为,试图在macOS上用苹果硅芯片运行简单的控制台应用程序:

代码语言:javascript
复制
sudo ./LoopbackDevice "MIDI A" "MIDI B" "MIDI C"  
Password:
sudo: ./LoopbackDevice: command not found

LoopbackDevice绝对位于当前目录中(通过ls检查)。这里有一点: LoopbackDevice构建在基于英特尔的机器上,但使用lipox86_64arm64架构合并,所以它应该在英特尔和苹果基于硅的机器上运行良好:

代码语言:javascript
复制
clang -undefined dynamic_lookup -o LoopbackDevice_arm64 LoopbackDevice.c -framework CoreServices -framework CoreFoundation -framework CoreMIDI -arch arm64
clang -undefined dynamic_lookup -o LoopbackDevice_x86_64 LoopbackDevice.c -framework CoreServices -framework CoreFoundation -framework CoreMIDI -arch x86_64
lipo LoopbackDevice_x86_64 LoopbackDevice_arm64 -output LoopbackDevice -create

在这里,您可以尝试在您的计算机上运行的应用程序存档:LoopbackDevice.zip。(如果您感兴趣,这里有源代码:LoopbackDevice.c)

但是,如果要在目标苹果硅机器上从Xcode的源代码中构建LoopbackDevice并使用上面的命令运行它,那么它可以正常工作:

代码语言:javascript
复制
Creating client...
Creating port 'MIDI A'...
    creating source...
    creating destination...
OK
Creating port 'MIDI B'...
    creating source...
    creating destination...
OK
Creating port 'MIDI C'...
    creating source...
    creating destination...
OK
Waiting for data...

那么,我做错了什么,构建通用应用程序?

我还需要注意的是,在基于英特尔的机器上构建通用的dylib是可以的,这种dylibs在苹果硅芯片上运行得很好。所以,也许我需要对应用程序使用不同的步骤(而不是dylibs)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-26 16:28:30

sudo ./LoopbackDevice "MIDI A“"MIDI B”"MIDI C“密码: sudo:./LoopbackDevice:命令未找到

当sudo完成时,您的目录似乎发生了一些变化。我测试了你的代码,它似乎在苹果的硅上工作。尝试提供一条绝对的道路?

代码语言:javascript
复制
% sudo ./LoopbackDevice "MIDI A" "MIDI B" "MIDI C"
Creating client...
Creating port 'MIDI A'...
    creating source...
    creating destination...
OK
Creating port 'MIDI B'...
    creating source...
    creating destination...
OK
Creating port 'MIDI C'...
    creating source...
    creating destination...
OK
Waiting for data...

那么,我做错了什么,构建通用应用程序?

只需一步编译就更简单了:

代码语言:javascript
复制
clang -arch arm64 -arch x86_64 -undefined dynamic_lookup -o LoopbackDevice LoopbackDevice.c -framework CoreServices -framework CoreFoundation -framework CoreMIDI
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73136428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档