Cygwin + MinGW + GCC 相談室 Part 8 (987レス)
上下前次1-新
27(1): デフォルトの名無しさん [sage] 2014/12/26(金) 21:04:32.27 ID:OP/Bn95j(1) AAS
Wikipediaに書いてあるじゃん
外部リンク:ja.wikipedia.org
まあ要するにコンパイルフラグをいじらなくて済むという話では
28: デフォルトの名無しさん [sage] 2014/12/27(土) 13:54:55.65 ID:BCIPL5E0(1) AAS
MSYS2 Avira で TR/Crypt.XPACK.Gen2 連発するから困る
29(1): デフォルトの名無しさん [sage] 2014/12/29(月) 09:28:57.28 ID:mY3AFavo(1) AAS
>>2626(1): 23 [sage] 2014/12/24(水) 21:55:31.04 ID:8/ZOVusd(2/2) AAS
調子に乗って「fdk-aacだけでなく最近はやりのOpusという音声コーデックもマージしよう」と
外部リンク[gz]:downloads.xiph.org
をダウンロード&展開し、
./configure --prefix=/mingw/i686-w64-mingw32
make && make insutall
を実行。その後ffmpegフォルダに移動して、
./configure --enable-gpl --enable-version3 --enable-nonfree --enable-libfdk-aac --enable-libopus
--extra-ldflags=-static --extra-cflags='-march=native -mfpmath=sse' --optflags=-O2
を実行してみたところ
ERROR: opus not found using pkg-config
Note: When building a static binary, add --pkg-config-flags="--static".
とエラーが返されました。fdk-aacはよくてopusは何でダメなの?訳が分からずググッてみると
ffmpegのconfigureを実行する前に
export PKG_CONFIG_PATH="/mingw/i686-w64-mingw32/lib/pkgconfig"
のおまじないを唱えると問題無くconfigureが通ることが分かりました。
外部リンク:qiita.com
fdk-aacはPKG_CONFIG_PATHをエクスポートせずとも良くて
OpusはPKG_CONFIG_PATHをエクスポートしないとconfigureが通らないのはなぜでしょうか?
pkg-configにコンパイル時のフラグを調べるためのデータを置く場所を教えるため。
てか、そこまで出来てるくせに勘が悪いな
30(2): 23 [sage] 2014/12/29(月) 11:52:31.05 ID:m849QDq1(1) AAS
>>27
>>29
コンパイル時のフラグの格納場所でしたか。
不思議なのはfdk-aacはPKG_CONFIG_PATHの場所を教えなくても問題無く進み、
Opusのときはきちんと提示してやらないと進まなかった点です。
二つは仕組みが違うんでしょうか?
31(1): デフォルトの名無しさん [sage] 2014/12/30(火) 12:28:25.80 ID:NSL+ZZg4(1) AAS
>>30
デフオルトの場所にあれば教えんでも工工わな
32(1): 23 [sage] 2014/12/30(火) 16:47:35.91 ID:tC9GpZ1z(1/2) AAS
>>31
fdk-aacもOpusも共に
./configure --prefix=/mingw/i686-w64-mingw32
とconfiguraしています。だから同じ /mingw/i686-w64-mingw32 にライブラリは格納されてるはずなんです・・・
Opusだけどっかイレギュラーな場所にライブラリをコピーしちゃってるんでしょうかね?
33(1): デフォルトの名無しさん [sage] 2014/12/30(火) 21:17:40.84 ID:NhJ3bWE9(1) AAS
>>30 >>32
疑問を持った時点でffmpegのconfigureの中身を見なさいな。(以下抜粋
> enabled libfdk_aac && require libfdk_aac fdk-aac/aacenc_lib.h aacEncOpen -lfdk-aac
> enabled libopus && require_pkg_config opus opus_multistream.h opus_multistream_decoder_create
ライブラリ有無のチェックに、libopusはpkg-configを用いて判定してるってだけ。
なので PKG_CONFIG_PATH を設定する必要がある。
34: 23 [sage] 2014/12/30(火) 22:10:28.69 ID:tC9GpZ1z(2/2) AAS
>>33
そういうことでしたか・・・
そういうの詳しい人が身近にいてくれると助かるんですが・・・
35(2): デフォルトの名無しさん [sage] 2015/01/04(日) 16:52:23.98 ID:BvegMGE7(1/5) AAS
cygwin64上で作業をやっとります。
故あって32bitコードを書かねばならないのですが、
i686-w64-mingw32-gcc, i686-pc-cygwin-gcc共にfopenでPOSIXパスを渡すと、
errno=2, No such file or directory
ということで開けません。
windowsパスにすると開けます
ダメ fopen("/home/foo/bar.txt", "r");
OK fopen("c:/cygwin64/home/foo/bar.txt", "r");
mingwでは仕方ないかとは思いますが、cygwin32までPOSIXパスを否定されると辛い。
objdumpで見ても、fopenはcygwin1.dllのものを使用している模様。
PATHは/usr/i686-pc-cygwin/sys-root/usr/binを通してあります。
POSIXパスを認識させる良い方法がありましたら御指南願います。
36(1): デフォルトの名無しさん [] 2015/01/04(日) 16:57:48.42 ID:Qu74iV3W(1) AAS
>>35
これはコンパイラでなく、OSの仕様。
windows OSの仕様を変更させるか、コンパイラ改造するしかないんでは?
認識できるわけではないが、簡単なのは自作ラッパーを挟む。
37(1): デフォルトの名無しさん [sage] 2015/01/04(日) 17:25:27.63 ID:tnXQTL6U(1/2) AAS
>>35
Cygwinの32bitと64bitだとルートディレクトリが違うからじゃね?
32bitコード書くならCygwin32上で作業した方がいいのでは。
38(1): デフォルトの名無しさん [sage] 2015/01/04(日) 18:42:58.13 ID:BvegMGE7(2/5) AAS
>>37
windows8でcygwin32使うとfork errorでまくりでコンパイルが進まないorz
39: デフォルトの名無しさん [sage] 2015/01/04(日) 18:44:55.84 ID:BvegMGE7(3/5) AAS
>>36
いやいや、cygwin64環境、cygwin32環境でネイティブのgccを使うとPOSIXパス使えるんだわ。
ところが、cygwin64環境でcygwin32(i686-pc-cygwin)だと使えないわけで。
32bit版cygwin1.dllがルートパスをどこと認識してるか、ってところなのかな。
40(3): デフォルトの名無しさん [sage] 2015/01/04(日) 20:35:46.69 ID:tnXQTL6U(2/2) AAS
>>38
rebaseallやってもforkエラー出まくりなんだとしたらしゃーないな。
cygwin1.dllがあるディレクトリの1つ上がルートディレクトリになってるはず。
単にUnix形式になってさえいればいいのなら /cygdrive/c/cygwin64/home/foo/bar.txt で
開けばいいし、それだとダメならfstabをいじるか
41: デフォルトの名無しさん [sage] 2015/01/04(日) 23:12:59.46 ID:BvegMGE7(4/5) AAS
>>40
windows7ではrebaseで治るんだけどなぁ。8.1はどうやっても連発で。
cygwin1.dllの一つ上がルートディレクトリはいい話を聞きましたわ。
マウントかリンクでなか胡麻化せるかも
42: デフォルトの名無しさん [sage] 2015/01/04(日) 23:41:05.65 ID:BvegMGE7(5/5) AAS
>>40
ファイル回りを/cygdrive形式で徹底することでなんとか胡麻化しできました
有難うございました。
43: デフォルトの名無しさん [sage] 2015/01/06(火) 23:06:21.71 ID:ei45L6+i(1) AAS
>>40
/usr/i686-pc-cygwin/sys-root/usr
がcxgwin32のルートになるわけやね。
cygwin64の/homeや/optを/cygdpgve/c/cygwin64/homeの形式で
/usr/i686-pc-cygwin/sys-root/usr/homeとしてシンボリックリンク張ったらあらかた違和感なく32bit, 64bit混在できるようになった。
44: 片山博文MZ ◆T6xkBnTXz7B0 [sage] 2015/01/17(土) 00:33:59.73 ID:PPUSm5YO(1) AAS
OpenMPをお使いの方、おらっしゃられるでござるか?
45: デフォルトの名無しさん [sage] 2015/01/20(火) 15:45:02.99 ID:aVZQpFMF(1) AAS
あるプログラムをmakeしてるんですが、
./configureで
"Can't find pthread library"
って出ます。
どうすればpthread libraryをインストールできますか?
46: デフォルトの名無しさん [sage] 2015/01/21(水) 22:52:26.98 ID:8VLGtKQr(1) AAS
setupすればいいだろ
47: デフォルトの名無しさん [sage] 2015/02/08(日) 15:58:27.25 ID:GkyTZ4Fl(1) AAS
g++で関数に一時オブジェクトを渡した場合の警告を抑制するにはどうしたらよいですか?
function( &HOGE() )
taking address of temporary
いったん変数に受けて回避していますが、その変数を作るのがめんどうくさいです。
48: デフォルトの名無しさん [] 2015/02/08(日) 23:18:34.94 ID:xZ3vG5op(1) AAS
MinGWでlibmysql.dllを使いたくて
外部リンク[html]:blog.livedoor.jp
を参考にして
> reimp libmysql.lib
> gcc -I"/C/Program Files/MySQL/MySQL Connector C 6.1/include" -o tester.cgi tester.c
"/C/Program Files/MySQL/MySQL Connector C 6.1/lib/liblibmysql.a"
とか
> reimp -c -d libmysql.lib
> dlltool -k -d libmysql.def -l libmysql.a
とかやってみたんだけど相変わらず
「undefined reference to mysql_init@4'」
とかのエラーが出やがります。
誰か助けてください。
defファイルを覗いてみたら「@n」のついてる関数名が1つも無いのが気になったけど、
外部リンク:tsubaki.hatenablog.com
の
>defファイルの中を見ると関数名の後ろに@8だの@12だの色々な数字がついているのが分かります。
との記述と食い違うのが気になります。
49: デフォルトの名無しさん [sage] 2015/02/12(木) 00:40:45.45 ID:mUfomLLZ(1) AAS
mingwはvc++用のライブラリをそのまま食えるだろ
50: デフォルトの名無しさん [sage] 2015/02/12(木) 14:45:46.54 ID:YuOBDKcu(1) AAS
外部リンク:sourceforge.jp
これの使い方がわからないんですけど、どうすればいい?
51: デフォルトの名無しさん [sage] 2015/02/13(金) 06:59:37.53 ID:Am2ui/8+(1) AAS
解凍したら、gccが出てくるのでは
7zだから解凍できないとか?
上下前次1-新書関写板覧索設栞歴
あと 936 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.013s