4

如何在不使用 Xcode 的情况下在 Mac 上构建 VST 插件?(我正在使用 Code::Blocks)。

4

2 回答 2

2

如果你真的坚持要绕过 Xcode,你应该继续使用'make',这可能会被证明与尝试使用 Code::Blocks 一样痛苦。虽然 Xcode 一开始可能会觉得很奇怪,但喝了 kool-aid 并处理它确实会为您省去很多麻烦,特别是如果您打算开发商业 VST 插件。例如,如果您不喜欢它的编辑器,那么您可以轻松地将其替换为您选择的另一个。但作为 Mac VST 开发者,Xcode 最大的优势确实在于它擅长处理“以 mac 为中心”的东西;即,构建适当的包、通用二进制文件、资源编辑、链接到系统框架等。此外,您将在那里找到的所有文档(以及其他在线 VST 开发社区,如 KVR)都是 Xcode 用户。

无论如何,如果您选择不听我的建议,应该仍然可以按照老式的方式进行操作。:)

原则上,VST 基本上只是一个动态库包,所以不管你使用的是什么 IDE,你只需要确保它被正确打包并包含适当的资源,否则主机将无法加载它。如果您不确切知道其中包括什么,只需在其他一些 VST 中四处寻找,看看它们在捆绑包中都有什么。要进行构建,您需要编译源代码和 VST SDK,并将以下框架链接到它:

  • 应用服务
  • 快速时间
  • 系统

...而且您可能还需要其他一些,这取决于您最终使用的是 Carbon 的哪些部分。您还应该构建为 UB,否则您最终会激怒许多仍在使用 G4/5 的制作人。然后,您需要创建一个 PkgInfo 文件,该文件将进入捆绑包的资源目录,其中必须包含以下文本:“BNDL????” (当然没有引号)。您还必须为您的插件创建一个标准的 Info.plist 文件,该文件会将系统指向加载的实际可执行文件名的名称以及在 Finder 中显示的一些其他信息。同样,如果您不知道那里需要什么,请从正在运行的 VST 中借一份副本并进行编辑以品尝。

于 2008-11-12T00:04:04.503 回答
2

当我发现VSTGL 的Xcode 项目太旧以至于 Xcode 4.1 甚至不会提供升级它时,我今晚这样做了。只是说“太老了”,然后在面包篮里打了我一拳。

我整理了一个简单的 Makefile,我只是在其中添加了“缺失”的部分,因为很明显我需要它们。

请注意,VSTGL 带有一个 ppc 编译的 VST,我刚刚用我新编译的包替换了它,这个 makefile 没有解决 Foo.app/Contents/[Resources|Info.plist|etc] 的布局,它只是编译它到一个有效的 VST 包中。

对我来说另一个问题是,在测试时我使用的是 Ableton Live,但我没有意识到它是 32 位的(即使在 Lion 上也是如此),这就是我省略“-arch x86_64”的原因,但如果你有一个 64 位主机,它应该工作?

此外,看起来即使在 VST 3.0 SDK 中,他们仍在使用直接的 Carbon,看不到 Cocoa。(我猜并不是说我会那么倾向于,但是再一次,使用 Lion,您会得到很多已弃用的东西。

INCLUDES = \
    -IVSTGL \
    -I../vstsdk2.4/ \
    -I../vstsdk2.4/public.sdk/source/vst2.x/

LIBS = \
    -framework OpenGL \
    -framework GLUT \
    -framework AGL \
    -framework Carbon \
    -framework CoreServices

SOURCES = \
    VstPlugin.cpp \
    ExampleEditor.cpp \
    VSTGL/VSTGLEditor.cpp \
    VSTGL/VSTGLTimer.cpp \
    ../vstsdk2.4/public.sdk/source/vst2.x/audioeffect.cpp \
    ../vstsdk2.4/public.sdk/source/vst2.x/audioeffectx.cpp \
    ../vstsdk2.4/public.sdk/source/vst2.x/vstplugmain.cpp

all:
    g++ -arch i386 $(INCLUDES) -bundle -o VSTGL.vst/Contents/MacOS/VSTGL $(SOURCES) 
于 2011-07-26T05:09:45.013 回答