在没有Xcode的Mac OS X上构建VST插件

时间:2008-11-11 18:38:01

标签: c++ vst

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

2 个答案:

答案 0 :(得分:2)

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

无论如何,如果你选择不听从我的建议,仍然可以用老式的方式来做。 :)

原则上,VST基本上只是一个动态库包,因此无论您使用何种IDE,您只需要确保它正确打包并包含适当的资源,否则主机不会能够加载它。如果你不确切地知道它包含什么,只需在其他一些VST中查看,看看它们在捆绑包里面有什么。要构建,您需要编译源代码和VST SDK,并将以下框架链接到它:

  • ApplicationService
  • 的QuickTime
  • 系统

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

答案 1 :(得分:1)

今晚我做了这个,当我发现VSTGL's Xcode项目太旧以至于Xcode 4.1甚至无法升级它。刚刚说“太老了”,在面包篮里打了我一拳。

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

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

对我来说另一个问题是,在测试时我使用的是Ableton Live,我没有意识到它是32位(甚至在Lion上),这就是为什么我省略'-arch x86_64',但如果你有64位主持人应该工作吗?

此外,即使在VST 3.0 SDK中,它们仍然使用直接碳,没有可可。 (并不是说我想我会如此倾向,但是再一次,对于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)