2008-11-11 3 views

답변

2

정말로 Xcode를 우회해야한다면 'make'를 사용해야합니다. 그러면 Code :: Blocks를 사용하는 것만큼이나 고통 스러울 것입니다. 처음에는 Xcode가 이상하게 느껴질 수도 있지만, 실제로 상용 VST 플러그인을 개발할 계획이라면 kool-aid를 마시고 처리하는 데 많은 어려움이 없을 것입니다. 예를 들어 편집자를 싫어하면 다른 편집기로 쉽게 바꿀 수 있습니다. 그러나 Xcode의 가장 큰 장점은 "맥 중심"의 물건을 다루는데 능숙하다는 것입니다. 유니버설 바이너리, 리소스 편집, 시스템 프레임 워크와의 링크 등을 포함합니다. 거기서 찾을 수있는 모든 문서 (KVR과 같은 다른 온라인 VST 개발자 커뮤니티)는 Xcode 사용자입니다.

어쨌든 내 충고에주의하지 않기로 선택하는 경우 이전 방식으로 처리 할 수 ​​있어야합니다. :)

기본적으로 VST는 기본적으로 동적 라이브러리 번들이므로 사용중인 IDE에 상관없이 해당 패키지가 올바르게 패키징되고 적절한 리소스가 포함되어 있는지 확인하거나 호스트 그것을로드 할 수 없습니다. 그것이 무엇을 포함하고 있는지 정확하게 모르는 경우, 다른 VST의 것들을 둘러보고 그들이 묶음 안에 무엇이 있는지보십시오. 당신에게

  • ApplicationService
  • 탄소를
  • 퀵타임
  • 시스템

을 ... 그리고 : 당신이 당신의 소스를 더한 VST SDK를 컴파일, 빌드 및 링크 다음과 같은 프레임 워크를 그것에하려면 카본의 어떤 부분을 사용 하느냐에 따라 아마도 다른 것들이 필요할 것입니다. 또한 UB로 구축해야합니다. 그렇지 않으면 G4/5를 사용하는 많은 제작자를 정말로 짜증나게 할 것입니다. 그런 다음 번들의 리소스 디렉토리로 이동하는 PkgInfo 파일을 만들어야합니다.이 디렉토리에는 "BNDL ????"이라는 텍스트가 있어야합니다. (따옴표 없음, 물론). 또한 플러그인을위한 표준 Info.plist 파일을 만들어야합니다.이 파일은로드 된 실제 실행 파일 이름과 Finder에 표시되는 기타 정보를 시스템에 알려줍니다. 다시 말하지만, 거기에 무엇이 있어야하는지 모를 경우 작업중인 VST에서 복사본을 빌려서 맛을 편집하십시오.

+0

나는 동의하지 않습니다. Makefile을 사용할 수있는 기능을 사용하면 미래에 Makefile 명령을 설정하는 것이 IDE에서 문제가 발생했을 때 (Xcode 업데이트, MacOS 업그레이드 또는 Windows 또는 Linux 로의 포팅으로 인해) 또는 추가가 필요할 때 훨씬 유용 할 것입니다 특수 최적화, 비정상적인 라이브러리 링크 또는 지속적인 통합으로 빌드 시스템 자동화. 컴파일러 명령을 이해하는 기능을 포함하여 올바른 Makefile 사용으로 얻은 지식은 "잘 모르겠다"라는 말 대신 포럼 및 StackOverflow에보다 쉽게 ​​퍼트립니다. – Vortico

1

내가 오늘 VSTGL's Xcode 프로젝트가 너무 오래되어서 Xcode 4.1이 업그레이드하려고 제안하지 않았을 때 나는 이것을했다. 그냥 '너무 나이 먹었어'라고 말했고 빵 바구니에 나를 때렸다.

필자는 필자에게 필자에게 '누락'부분을 추가 한 단순한 Makefile을 함께 넣어 보았습니다.

VSTGL에는 새로 컴파일 된 번들로 바뀐 ppc로 컴파일 된 VST가 있습니다.이 makefile에서 다루지 않는 Foo.app/Contents/[Resources|Info.plist|etc]의 레이아웃이 있습니다. 그것은 단지 그것을 유효한 VST 번들로 컴파일합니다.

나를 위해 다른 하나의 문제는 이것을 테스트 할 때 32 비트 (심지어 라이온)라는 것을 깨달은 Ableton Live를 사용했기 때문에 '-arch x86_64'는 생략했지만, 64 비트 호스트가 작동해야합니까?

또한 VST 3.0 SDK에서도 마찬가지입니다. 여전히 Cocoa가없는 상태에서 Carbon을 사용하고 있습니다. (내가 그렇게 추측 할 수는 없지만, 라이온과 함께라면 더 이상 쓸모없는 것을 많이 얻을 수 있습니다.

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)