Skip to content

Instantly share code, notes, and snippets.

@yoggy
Last active August 29, 2015 14:21
Show Gist options
  • Save yoggy/7d2370faabdb295deed6 to your computer and use it in GitHub Desktop.
Save yoggy/7d2370faabdb295deed6 to your computer and use it in GitHub Desktop.

portaudioのメモ

portaudio

ソースのダウンロード

Visual Studio 2013用ビルド設定 (ASIO SDKを使用する場合)

参考URL

まず、pa_stable_v19_20140130.tgzをダウンロードして解凍しておく。 今回使用したファイルは以下のファイル。

次に、ASIO SDKを以下URLからダウンロードする。

ダウンロードしたasiosdk2.3.zipを解凍して、ディレクトリ名をASIOSDKにリネームしておく。 ASIOSDKディレクトリはportaudio\src\hostapi\asio\に移動しておく。

ASIOSDKの配置が終わったら、Visual Studio用のソリューションファイルを開く。 ソリューションファイルはportaudio\build\msvc\portaudio.slnに用意されている。

ソリューションを開いた後、まずASIOSDKのディレクトリが正しく設定されているかどうかを確認する。 確認は、ソリューションエクスプローラに表示されているツリー表示の中から、

  • "Source Files"→"hostapi"→"ASIO"→"ASIOSDK"→asio.cpp

を選び、ファイルを正しく開くことができることを確認する。 もし、ASIOSDKディレクトリが正しく配置されていない場合は、 このファイルを開くことができない。

ASIOSDKが正しく配置されていることを確認した後、プロジェクトのビルドに関する設定を行う。 設定する項目は次の2点。

  • (1) 追加のライブラリディレクトリの設定
  • (2) プリプロセッサの定義の設定
  • (2) 出力ファイル名、インポートファイル名の設定

(1)の設定については、プロジェクトのプロパティを開き、"リンカ"→"全般"の中にある「追加のライブラリディレクトリ」に次のディレクトリを追加する。

  • プラットフォームがWin32の場合
    • C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib
  • プラットフォームがx86の場合
    • C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\x64

追加のライブラリディレクトリの設定はDebug, Releaseともに設定しておく。 この設定を行わない場合、リンク時に"ksguid.lib"が見つからないとエラーが出てビルドに失敗するので、必ず設定する必要がある。

(2)の設定については"C++"→"プリプロセッサ"→"プリプロセッサの定義"にある設定を変更する。 プラットフォーム、構成に応じて次の内容を設定する。

  • プラットフォームがWin32, 構成がDebugの場合 WIN32;_DEBUG;_USRDLL;PA_ENABLE_DEBUG_OUTPUT;_CRT_SECURE_NO_DEPRECATE;PAWIN_USE_WDMKS_DEVICE_INFO;PA_USE_ASIO=1;PA_USE_DS=0;PA_USE_WMME=0;PA_USE_WASAPI=1;PA_USE_WDMKS=1;%(PreprocessorDefinitions)

  • プラットフォームがWin32, 構成がReleaseの場合 WIN32;NDEBUG;_USRDLL;_CRT_SECURE_NO_DEPRECATE;PAWIN_USE_WDMKS_DEVICE_INFO;PA_USE_ASIO=1;PA_USE_DS=0;PA_USE_WMME=0;PA_USE_WASAPI=1;PA_USE_WDMKS=1;%(PreprocessorDefinitions)

  • プラットフォームがx64, 構成がDebugの場合 _WIN64;_DEBUG;_USRDLL;PA_ENABLE_DEBUG_OUTPUT;_CRT_SECURE_NO_DEPRECATE;PAWIN_USE_WDMKS_DEVICE_INFO;PA_WDMKS_NO_KSGUID_LIB;PA_USE_ASIO=1;PA_USE_DS=0;PA_USE_WMME=0;PA_USE_WASAPI=1;PA_USE_WDMKS=1;%(PreprocessorDefinitions)

  • プラットフォームがx64, 構成がReleaseの場合 _WIN64;NDEBUG;_USRDLL;_CRT_SECURE_NO_DEPRECATE;PAWIN_USE_WDMKS_DEVICE_INFO;PA_WDMKS_NO_KSGUID_LIB;PA_USE_ASIO=1;PA_USE_DS=0;PA_USE_WMME=0;PA_USE_WASAPI=1;PA_USE_WDMKS=1;%(PreprocessorDefinitions)

(3)の設定についてはオプション。必要がなければ設定しなくても良い。 設定を行うのは次の2点。

  • "リンカ"→"全般"→"出力ファイル"
  • "リンカ"→"詳細設定"→"インポートライブラリ"

それぞれの設定内容については次の通り。

  • プラットフォームがWin32, 構成がDebugの場合
    • 出力ファイル : $(Platform)$(Configuration)\portaudio_x86D.dll
    • インポートライブラリ : $(Platform)$(Configuration)\portaudio_x86D.lib
  • プラットフォームがWin32, 構成がReleaseの場合
    • 出力ファイル : $(Platform)$(Configuration)\portaudio_x86.dll
    • インポートライブラリ : $(Platform)$(Configuration)\portaudio_x86.lib
  • プラットフォームがx86, 構成がDebugの場合
    • 出力ファイル : $(Platform)$(Configuration)\portaudio_x64D.dll
    • インポートライブラリ : $(Platform)$(Configuration)\portaudio_x64D.lib
  • プラットフォームがx86, 構成がReleaseの場合
    • 出力ファイル : $(Platform)$(Configuration)\portaudio_x64.dll
    • インポートライブラリ : $(Platform)$(Configuration)\portaudio_x64.lib

個人的には、Debug/Releaseビルドでファイル名を同じにしておくと、DLLが混ざって危険だと思うので、この設定を行っている。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment