忍者ブログ
MASTER →  ADMIN / NEW ENTRY / COMMENT
現代魔法(nearly equal 情報技術)を勉強中な人のメモ(チラシの裏)
/ 2024/03/19 (Tue) / 編集
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

/ 2008/07/05 (Sat) / 編集
こんぱいるできないよ〜 いろいろためしたけどむりだよ〜


さて、OpenALを試そうとしたらサンプルコードでALUT使ってたわけだが。
でもって[OpenAL Tutorial]The Codeにあるとおりに「AL/alut.h」を「OpenAL/alut.h」にかきかえたのに「OpenAL/alut.hなんてねぇよ!」と言われたんだが、、、(もちろん「-framework OpenAL」したよ?)
なんだこれ?とおもったら
:/System/Library/Frameworks/OpenAL.framework/Headers]%ls
MacOSX_OALExtensions.h
al.h
alc.h
うん、たしかにない、、、なんでだ!?


仕方ないので公式サイトからfreealut-1.1.0をダウンロードしてきてコンパイルしようとしたらmakeの段階でエラー
ld: symbol(s) not found
collect2: ld returned 1 exit status
シンボルがない?どうやらOpenALの関数を見つけられないらしい、、、

調べてみたらconfigureの段階で以下のような内容が
checking for ANSI C header files... (cached) yes
checking AL/alc.h usability... no
checking AL/alc.h presence... no
checking for AL/alc.h... no
checking AL/al.h usability... no
checking AL/al.h presence... no
checking for AL/al.h... no
ですよね〜(笑)MacだからOpenAL〜になってないとね〜
というわけでここも直した、だがやっぱコンパイルエラー、、、

そこで気がついた、あれ?framework読み込んでなくね?
というわけで環境変数CPPFLAGSを設定してみた
%echo $CPPFLAGS
-framework OpenAL
だがしかしやっぱエラー、、、
めんどうなのでOpenALをソースコードからコンパイルしてそれのincludeを指定しようとおもったら、、、
OpenALのコンパイルもできないOrz しかも「alc_backend_darwin.c」の構文エラー(笑) 手出しできねぇワロスww

てゆうかさ、「freealut-1.1.0/include/AL/alut.h」には
#elif defined(__APPLE__)
#include <OpenAL/alc.h>
#include <OpenAL/al.h>
#else
とかMacでコンパイルすることも考えてあるような行があるのになんでコンパイルできねぇんだ?おかしくね?なんか特別な手続きが必要ならそれも書いとくべきだよね?ね?




まぁ一応エラーコードを載せておこう、そのうちなんか思いつくかもしれんしね、、、

gcc -dynamiclib -o .libs/libalut.0.dylib .libs/libalut_la-alutBufferData.o .libs/libalut_la-alutCodec.o .libs/libalut_la-alutError.o .libs/libalut_la-alutInit.o .libs/libalut_la-alutInputStream.o .libs/libalut_la-alutLoader.o .libs/libalut_la-alutOutputStream.o .libs/libalut_la-alutUtil.o .libs/libalut_la-alutVersion.o .libs/libalut_la-alutWaveform.o -install_name /usr/local/lib/libalut.0.dylib -Wl,-compatibility_version -Wl,2 -Wl,-current_version -Wl,2.0
Undefined symbols:
"_alcGetContextsDevice", referenced from:
__alutSanityCheck in libalut_la-alutInit.o
_alutExit in libalut_la-alutInit.o
"_alcCloseDevice", referenced from:
_alutInit in libalut_la-alutInit.o
_alutInit in libalut_la-alutInit.o
_alutExit in libalut_la-alutInit.o
"_alGetError", referenced from:
__alutPassBufferData in libalut_la-alutBufferData.o
__alutPassBufferData in libalut_la-alutBufferData.o
__alutSanityCheck in libalut_la-alutInit.o
"_alcCreateContext", referenced from:
_alutInit in libalut_la-alutInit.o
"_alcGetCurrentContext", referenced from:
__alutSanityCheck in libalut_la-alutInit.o
"_alcGetError", referenced from:
__alutSanityCheck in libalut_la-alutInit.o
_alutExit in libalut_la-alutInit.o
"_alBufferData", referenced from:
__alutPassBufferData in libalut_la-alutBufferData.o
"_alcOpenDevice", referenced from:
_alutInit in libalut_la-alutInit.o
"_alcDestroyContext", referenced from:
_alutInit in libalut_la-alutInit.o
_alutExit in libalut_la-alutInit.o
"_alcMakeContextCurrent", referenced from:
_alutInit in libalut_la-alutInit.o
_alutExit in libalut_la-alutInit.o
"_alGenBuffers", referenced from:
__alutPassBufferData in libalut_la-alutBufferData.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[2]: *** [libalut.la] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

拍手[0回]

PR
忍者ブログ [PR]