X



Cygwin + MinGW + GCC 相談室 Part 8
0001デフォルトの名無しさん
垢版 |
2014/09/23(火) 00:20:11.40ID:G97CLCj1
Windows上で動作するフリーの開発環境 CygwinとMinGWに関する相談スレッドです。

過去スレ:
Cygwin + MinGW + GCC 相談室 Part 7
http://peace.2ch.net/test/read.cgi/tech/1357019230/
Cygwin + MinGW + GCC 相談室 Part 6
http://toro.2ch.net/test/read.cgi/tech/1304609116/
Cygwin + MinGW + GCC 相談室 Part 5
http://hibari.2ch.net/test/read.cgi/tech/1269400706/
Cygwin + MinGW + GCC 相談室 Part 4
http://pc12.2ch.net/test/read.cgi/tech/1221233882/
cygwin + mingwn + gcc 相談室 Part3
http://pc11.2ch.net/test/read.cgi/tech/1177944767/
cygwin + mingwn + gcc 相談室 Part2
http://pc11.2ch.net/test/read.cgi/tech/1126103347/
cygwin + mingwn + gcc 相談室
http://pc8.2ch.net/test/read.cgi/tech/1058134693/

関連サイト:
Cygwin http://www.cygwin.com/
MinGW http://www.mingw.org/

関連スレッド:
GCCについて part10
http://toro.2ch.net/test/read.cgi/tech/1315026784/
0003デフォルトの名無しさん
垢版 |
2014/09/26(金) 16:15:48.16ID:SVlqbnuI
MinGW のgccを起動するとPentium MMX環境では不正な処理で落ちます

i586では動かないのでしょうか?
だとしたらどうしたらいいですか?

Windows 2000 SP4
0006デフォルトの名無しさん
垢版 |
2014/10/07(火) 23:24:15.31ID:3K4niACL
cygwinの64bit gccではLP64のせいか、MS-C向けのDLLがリンクできない。
そこでLLP64のx86_64-w64-mingw32-gccをcygwin上で使っています。
コンパイルしたものを実行するために、/usr/x86_64-w64-mingw32/sys-root/mingw/bin等の専用DLLのある場所にパスを通す必要がありますが、
他の普通にcygwinでコンパイルしたものを実行する際の邪魔になるのでパスは通したくない。
-staticつければいいけどバイナリがデカすぎる。
なにか、dllのパス名を埋めこむオプションないですかね。
-Rはないと言われるし。
0007デフォルトの名無しさん
垢版 |
2014/10/11(土) 02:54:30.06ID:MWJOKHG8
>>6
専用DLLが必要なやつは、バッチファイルから起動するとか。
(バッチファイルの中でだけPATHを通す)
0015デフォルトの名無しさん
垢版 |
2014/10/17(金) 09:28:29.33ID:tyCwBko4
MinGW

> objcopy -h

> libintl-8.dll がねーぞゴルァ!


よそから持ってこなきゃだめなん( ゚д゚)?
0016デフォルトの名無しさん
垢版 |
2014/10/17(金) 15:11:34.85ID:gouFXgPa
しばらく前にMinGW更新したら、同じようにそのDLLでエラーになったな。
古いアーカイブファイルから復帰させたけどどうやるのが正しいのやら。
0018デフォルトの名無しさん
垢版 |
2014/10/19(日) 23:35:00.40ID:mp40xGFQ
そんなことよりもお前らmsys2 + pacmanは使ったか?
あれはいいものだ
0019デフォルトの名無しさん
垢版 |
2014/10/26(日) 08:34:29.06ID:axjCVmEg
ディレクトリを選択して右クリックの 送る から cygterm+putty を開くにはどうすればいいのでしょうか?
0020デフォルトの名無しさん
垢版 |
2014/10/30(木) 11:08:43.38ID:dIih4uCY
cygwinでは npm init がエラーになるんだな
ちょくちょく独特なトラブルが起こるからいまいち使いにくい
0022デフォルトの名無しさん
垢版 |
2014/12/19(金) 20:07:46.12ID:TVDdwTgk
msysはなんか一時期まともにインスコできない時期があったので、
cygwin64にcygwin, cygwin32, mingw32, mingw64のコンパイラ入れまくりに落ち着きつつある。
結局windwosネイティブのdll使うにはmingwじゃないとダメだしクロスコンパイルしまくりでやはり面倒ではある。
0023デフォルトの名無しさん
垢版 |
2014/12/23(火) 12:58:12.55ID:wtjAlw23
x265をコンパイルできるFFmpegをビルドするためにMinGW + MSYSを以下のサイトからダウンロードして
Windows7に入れました。

http://xhmikosr.1f0.de/tools/msys/
MSYS_MinGW-w64_GCC_492_x86-x64_Full.7z

早速x265のコンパイルをしようと以下のサイトを参考にしたのですが、
http://qiita.com/pb_tmz08/items/29165f4c3ef9bc4285ab
hg, cmakeが必要とのことです。(Linuxには疎いのでhgやcmakeがどういうプログラムなのかいまいち分かりませんが)
デフォルトのMinGW + MSYSにはhgやcmakeは含まれていないようです。
hgやcmakeを使えるようにするにはどうしたらいいでしょうか?
002523
垢版 |
2014/12/24(水) 21:54:49.37ID:8/ZOVusd
ありがとうございました。おかげさまでhg, cmake, ついでにgitまで使えるようになりました。
> MinGWはこっちの方がよくね?
MSYSを別途導入する必要があるようだったので>>23のMSYS_MinGW-w64_GCC_492_x86-x64_Full.7zを使うことにしました。

ところでffmepgのコンパイルをしていて些細な疑問を持ったのですが、
http://d.hatena.ne.jp/kamedo2/20130619/1371662769
のサイトを参考に音声コーデックのfdk-aacをffmpegにマージしてみました。
サイトに書かれていたとおり、
/FFmpeg/fdk-aac-0.1.1/
に移動して
 ./configure --prefix=/mingw/i686-w64-mingw32
 make && make insutall
を実行し、そのあとffmpegのコンパイルをするべく
 cd ../ffmpeg-HEAD-4110828
でffmpegフォルダに移動し
 ./configure --enable-gpl --enable-version3 --enable-nonfree --enable-libfdk-aac
  --extra-ldflags=-static --extra-cflags='-march=native -mfpmath=sse' --optflags=-O2
を実行したところ問題無くconfigureは通りました。
002623
垢版 |
2014/12/24(水) 21:55:31.04ID:8/ZOVusd
調子に乗って「fdk-aacだけでなく最近はやりのOpusという音声コーデックもマージしよう」と
http://downloads.xiph.org/releases/opus/opus-1.1.tar.gz
をダウンロード&展開し、
 ./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が通ることが分かりました。
http://qiita.com/tukiyo3/items/ac36375d426d39f203fb

fdk-aacはPKG_CONFIG_PATHをエクスポートせずとも良くて
OpusはPKG_CONFIG_PATHをエクスポートしないとconfigureが通らないのはなぜでしょうか?
0029デフォルトの名無しさん
垢版 |
2014/12/29(月) 09:28:57.28ID:mY3AFavo
>>26
pkg-configにコンパイル時のフラグを調べるためのデータを置く場所を教えるため。
てか、そこまで出来てるくせに勘が悪いな
003023
垢版 |
2014/12/29(月) 11:52:31.05ID:m849QDq1
>>27
>>29
コンパイル時のフラグの格納場所でしたか。
不思議なのはfdk-aacはPKG_CONFIG_PATHの場所を教えなくても問題無く進み、
Opusのときはきちんと提示してやらないと進まなかった点です。
二つは仕組みが違うんでしょうか?
003223
垢版 |
2014/12/30(火) 16:47:35.91ID:tC9GpZ1z
>>31
fdk-aacもOpusも共に
 ./configure --prefix=/mingw/i686-w64-mingw32
とconfiguraしています。だから同じ /mingw/i686-w64-mingw32 にライブラリは格納されてるはずなんです・・・
Opusだけどっかイレギュラーな場所にライブラリをコピーしちゃってるんでしょうかね?
0033デフォルトの名無しさん
垢版 |
2014/12/30(火) 21:17:40.84ID:NhJ3bWE9
>>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 を設定する必要がある。
003423
垢版 |
2014/12/30(火) 22:10:28.69ID:tC9GpZ1z
>>33
そういうことでしたか・・・
そういうの詳しい人が身近にいてくれると助かるんですが・・・
0035デフォルトの名無しさん
垢版 |
2015/01/04(日) 16:52:23.98ID:BvegMGE7
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パスを認識させる良い方法がありましたら御指南願います。
0036デフォルトの名無しさん
垢版 |
2015/01/04(日) 16:57:48.42ID:Qu74iV3W
>>35
これはコンパイラでなく、OSの仕様。
windows OSの仕様を変更させるか、コンパイラ改造するしかないんでは?
認識できるわけではないが、簡単なのは自作ラッパーを挟む。
0037デフォルトの名無しさん
垢版 |
2015/01/04(日) 17:25:27.63ID:tnXQTL6U
>>35
Cygwinの32bitと64bitだとルートディレクトリが違うからじゃね?
32bitコード書くならCygwin32上で作業した方がいいのでは。
0039デフォルトの名無しさん
垢版 |
2015/01/04(日) 18:44:55.84ID:BvegMGE7
>>36
いやいや、cygwin64環境、cygwin32環境でネイティブのgccを使うとPOSIXパス使えるんだわ。
ところが、cygwin64環境でcygwin32(i686-pc-cygwin)だと使えないわけで。
32bit版cygwin1.dllがルートパスをどこと認識してるか、ってところなのかな。
0040デフォルトの名無しさん
垢版 |
2015/01/04(日) 20:35:46.69ID:tnXQTL6U
>>38
rebaseallやってもforkエラー出まくりなんだとしたらしゃーないな。

cygwin1.dllがあるディレクトリの1つ上がルートディレクトリになってるはず。
単にUnix形式になってさえいればいいのなら /cygdrive/c/cygwin64/home/foo/bar.txt で
開けばいいし、それだとダメならfstabをいじるか
0041デフォルトの名無しさん
垢版 |
2015/01/04(日) 23:12:59.46ID:BvegMGE7
>>40
windows7ではrebaseで治るんだけどなぁ。8.1はどうやっても連発で。
cygwin1.dllの一つ上がルートディレクトリはいい話を聞きましたわ。
マウントかリンクでなか胡麻化せるかも
0042デフォルトの名無しさん
垢版 |
2015/01/04(日) 23:41:05.65ID:BvegMGE7
>>40
ファイル回りを/cygdrive形式で徹底することでなんとか胡麻化しできました
有難うございました。
0043デフォルトの名無しさん
垢版 |
2015/01/06(火) 23:06:21.71ID:ei45L6+i
>>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混在できるようになった。
0045デフォルトの名無しさん
垢版 |
2015/01/20(火) 15:45:02.99ID:aVZQpFMF
あるプログラムをmakeしてるんですが、
./configureで
"Can't find pthread library"
って出ます。

どうすればpthread libraryをインストールできますか?
0047デフォルトの名無しさん
垢版 |
2015/02/08(日) 15:58:27.25ID:GkyTZ4Fl
g++で関数に一時オブジェクトを渡した場合の警告を抑制するにはどうしたらよいですか?

function( &HOGE() )

taking address of temporary

いったん変数に受けて回避していますが、その変数を作るのがめんどうくさいです。
0048デフォルトの名無しさん
垢版 |
2015/02/08(日) 23:18:34.94ID:xZ3vG5op
MinGWでlibmysql.dllを使いたくて
http://blog.livedoor.jp/dq_school/archives/1256405.html
を参考にして

> 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つも無いのが気になったけど、

http://tsubaki.hatenablog.com/entry/20121020/1350734844

 >defファイルの中を見ると関数名の後ろに@8だの@12だの色々な数字がついているのが分かります。
との記述と食い違うのが気になります。
0052片山博文MZ ◆T6xkBnTXz7B0
垢版 |
2015/02/13(金) 22:45:16.44ID:FFJk3767
MinGW32がちょっとおかしい。TDM-GCC-32ではdbghelp.hが見つからない。
stddef.hが見つからない。何でやねん。
0055片山博文MZ ◆T6xkBnTXz7B0
垢版 |
2015/02/14(土) 19:10:54.20ID:oTsZATt9
質問!
コアダンプはどうやったら吐くの?
0057デフォルトの名無しさん
垢版 |
2015/02/17(火) 12:27:12.39ID:iWso3gZa
Cygwinってwindows上でlinuxのsocketプログラムをコンパイル・実行して.outファイルを吐ける
って認識でおk?
0058デフォルトの名無しさん
垢版 |
2015/02/17(火) 21:00:20.33ID:KxUNCf+V
hello.exeができます
0059デフォルトの名無しさん
垢版 |
2015/02/17(火) 21:02:18.03ID:KxUNCf+V
UNIX系OSでは「a.out」というファイルが出来上がるので、それを実行します。
Windows+Cygwinでは、「a.exe」というファイルが生成されます
0060デフォルトの名無しさん
垢版 |
2015/02/17(火) 21:25:51.27ID:d+hn81Dl
Mingwで/etc/fstabをいじらないとautotoolsが動かないなんて初めて知ったわ!

しかも/でlsしても表示されないとかわかりにくw
0061片山博文MZ ◆T6xkBnTXz7B0
垢版 |
2015/02/17(火) 21:47:05.06ID:J4a0mND/
よろしくお願いします。
(1) sizeof(long double)って環境依存だよな。
(2) struct A {
int *p; size_t s; int u;
};
なぜsizeof(struct A)が24になるのか理解できない。
20になると思ったのに。
0063デフォルトの名無しさん
垢版 |
2015/02/18(水) 01:00:39.39ID:TwFrbGHZ
いい加減msysからmsys2に移行しようとして導入したんだけど、なぜかprofileにインクルードパス
指定してconfigure走らせるとshがコアバンプ吐く。ライブラリパスは指定しても問題なし。
なのでconfigureの時にいちいちCFLAGSにパス書き込んでるんだけど、そういう仕様なのかなコレ
0064デフォルトの名無しさん
垢版 |
2015/03/09(月) 02:56:06.89ID:9kRgY548
msys2でconfigureは一回もやってないが、なんかファイル名補完がおかしいな
gcc -o test.exe test.cでコンパイルした./test.exeが./t<tab>で補完できない
./test.e<tab>でようやく補完できる
test.c があるとダメみたい。拡張子なしtestもダメ
test.txtがあってもおkで.cppも.ccもダメだ。コンパイラで使う拡張子がダメ?
検索すると出てくる日記にある、実行権限どうこうとはまた話が違うようだ。
こっちが悪いのか設定でなんとかなるのかわかんない

回避策としては、_test.exeなどと先頭に_でもつければ./_<tab>2回でいいみたい。
そもそもいきなり<tab>で何もでないのは普通の挙動だっけ?まいっか
0065デフォルトの名無しさん
垢版 |
2015/03/10(火) 12:55:18.85ID:NhcVfS2T
ストレージ損傷に備えてのMinGWシステム丸ごとバックアップとリストアのノウハウ下さい
0068デフォルトの名無しさん
垢版 |
2015/03/23(月) 15:59:44.55ID:ZLb6HGNj
はじめて、MinGW使ってるんだけど
テキストにプログラム書いて保存して、コマンド実行だろ?
簡略化できませんか?
0071デフォルトの名無しさん
垢版 |
2015/03/25(水) 14:29:33.46ID:ZxRXh/U2
viまたはemacs
0072デフォルトの名無しさん
垢版 |
2015/03/27(金) 01:30:20.23ID:rsZtLFBo
>>68
ターミナルで3文字くらい打ち込んだらタブキーを押せ
0074デフォルトの名無しさん
垢版 |
2015/03/27(金) 21:30:06.44ID:792uuds4
適当なビルドツール、タスクランナー、それをテキストエディタから呼び出すための
プラグイン

これ以上はどの言語でどのエディタ使って作ってるかわからんからなんとも言えん
0076デフォルトの名無しさん
垢版 |
2015/03/28(土) 11:43:59.49ID:y3APX9pc
まあたいていの場合保存、ビルド、実行まで連続でやってくれるプラグインを
作ってる人がいると思う
0078デフォルトの名無しさん
垢版 |
2015/03/28(土) 12:06:33.56ID:y3APX9pc
だからそれを自動実行したいって話じゃないの?

最近ではmakeやautotoolsを包括したcmakeってのが使われてるみたいだけど
使ってないからまだよくわからんな

自分はvimにquickrunってプラグインいれてる
どの言語でも適切にビルドや実行のプロセス起動してくれてる
0079デフォルトの名無しさん
垢版 |
2015/04/05(日) 23:20:46.68ID:WLvRs6G9
初心者です
MinGWのページいってダウンローダー取ってきてMinGW Installation Manger起動して
Basic Setupのそれっぽい4つほどチェックしてインストールしたら
MinGW\msys\1.0\binにmakeやbashとかはあるのにconfigureがないのはどうしたらいいでしょうか?
All Packageみてもそれらしいのが見つからない
0080デフォルトの名無しさん
垢版 |
2015/04/06(月) 01:19:36.16ID:Ugmw9l0i
configureは作りたいプログラム毎に全部中身が違う
つまりあなたの責任でなんとかするしかない
あるいは小規模ならconfigureは無しにするという選択肢もある
0083デフォルトの名無しさん
垢版 |
2015/04/20(月) 18:16:06.23ID:2rCqjQh5
MinGWなのですが
ターミナルでfindコマンドを実行すると
日本語の表記が文字化けします

lsやdiffで表示される文字は化けないのですが
考えられる原因って何かありますか?
0088デフォルトの名無しさん
垢版 |
2015/04/20(月) 21:56:53.63ID:Cww9xzzr
ちょっと前までcygwin使い辛い気がしてたんだけど
gnupackで随分導入しやすくなってたんだな
0089デフォルトの名無しさん
垢版 |
2015/04/20(月) 22:04:09.48ID:2rCqjQh5
>>87
同じくfind -print0だと表記は問題なくなりましたけど
改行されなくて見辛いですね・・・
0090デフォルトの名無しさん
垢版 |
2015/04/20(月) 22:43:57.07ID:9Kemohtk
ls -C | nkf -s
ls -C | iconv -f cp932 -t cp932

ls -C | nkf -w
ls -C | iconv -f cp932 -t UTF-8

とか面倒くさい
0096デフォルトの名無しさん
垢版 |
2015/06/30(火) 20:18:15.76ID:gO0OMwPw
sourceforgeのmsysが怪しいらしいよ。ウイルス?
0099片山博文MZ ◆T6xkBnTXz7B0
垢版 |
2015/07/03(金) 13:01:38.44ID:eu8p8bsj
MSYSにウイルス入ってるらしいよ。配布元がsourceforgeしかないから対処法なし。
http://devkitpro.org/viewtopic.php?f=2&;t=2223
レスを投稿する


ニューススポーツなんでも実況