如何在不使用Xcode的情况下在Mac上构建VST插件? (我正在使用Code :: Blocks)。
答案 0 :(得分:2)
如果你真的坚持绕过Xcode,你应该继续使用'make',这可能会像尝试使用Code :: Blocks一样痛苦。虽然Xcode最初可能会感觉很奇怪,但是如果你计划开发商业VST插件,它会让你在喝kool-aid时遇到很多麻烦。例如,如果您不喜欢它的编辑器,那么您可以轻松地将其替换为您选择的另一个编辑器。但作为Mac VST的开发人员,Xcode的最大优势在于它擅长处理“以mac为中心”的东西;即,构建适当的捆绑包,通用二进制文件,资源编辑,链接系统框架等。此外,您将在那里找到的所有文档(以及其他在线VST开发社区,如KVR)都是Xcode用户。
无论如何,如果你选择不听从我的建议,仍然可以用老式的方式来做。 :)
原则上,VST基本上只是一个动态库包,因此无论您使用何种IDE,您只需要确保它正确打包并包含适当的资源,否则主机不会能够加载它。如果你不确切地知道它包含什么,只需在其他一些VST中查看,看看它们在捆绑包里面有什么。要构建,您需要编译源代码和VST SDK,并将以下框架链接到它:
......你可能还需要其他一些,这取决于你最终使用的碳的哪些部分。你也应该建立一个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)