cygwin + mingwn + gcc 相談室 Part2
■ このスレッドは過去ログ倉庫に格納されています
0001980
2005/09/07(水) 23:29:07※ MinGWが正式名称です。スレタイはバグでもtypoでもなく仕様です。
過去スレ:
cygwin + mingwn + gcc 相談室
http://pc8.2ch.net/test/read.cgi/tech/1058134693/
関連サイト:
Cygwin http://www.cygwin.com/
MinGW http://www.mingw.org/
関連スレッド:
GCCについて Part6
http://pc8.2ch.net/test/read.cgi/tech/1121146723/
MinGWを使おう
http://pc8.2ch.net/test/read.cgi/tech/1042611308/
0002デフォルトの名無しさん
2005/09/07(水) 23:41:23さっそく質問だが
MinGWで、COMサーバ・クライアントをする実例ってある?
CでインタフェイスをGetするのはやったけど、やっぱりC++チックな
書き方ができないのが悔しかった。
Borlandのタイプライブラリインポートで、プロパティが
Borlandのプロパティに対応するのを見て、なんだか悔しかったり。
C++ ABI は、MSVC BCC いずれとも互換性がないんだっけ?
0003デフォルトの名無しさん
2005/09/08(木) 14:31:05gcc-3.xのMinGWならふつーに使えた気がしないでもない。
0004デフォルトの名無しさん
2005/09/09(金) 22:43:15サンクス!
0005デフォルトの名無しさん
2005/09/10(土) 14:58:40for(;;) printf("乙!\n");
0006名無しさん@そうだ選挙に行こう
2005/09/10(土) 18:52:53COM は C++ ABI のごく基本的でほぼ共通の実装が使われている部分(vtbl 周り)に
立脚しているから、ごく普通に MinGW の C++ でも使えると思うが。
0007名無しさん@そうだ選挙に行こう
2005/09/11(日) 02:03:40それが、gccの場合は、vtblの先頭を型情報と何か(知らん)で取るから、他のコンパイラと仮想関数がふたつずれるんですよ。
0008名無しさん@そうだ選挙に行こう
2005/09/11(日) 20:58:32gcc は対応してたけ?
declspec で vt の持ち方などを変更できればいいんだが…
0009名無しさん@そうだ選挙に行こう
2005/09/11(日) 22:00:130010デフォルトの名無しさん
2005/09/12(月) 12:48:54どのバージョンのMinGW/gccを使っていて、どんなコードがダメだった
のか挙げてみなさいな。MinGWでできるはずだよ。
0011デフォルトの名無しさん
2005/09/12(月) 22:38:00うぉっ、4.0.1では先頭の情報が無くなってる。
ちなみに記憶にあったのは3.系の初期。
0012デフォルトの名無しさん
2005/09/15(木) 15:38:280013デフォルトの名無しさん
2005/09/19(月) 14:29:38bjam -sTOOLS=mingw install
ってやったらすべてskipされました。。
0014デフォルトの名無しさん
2005/09/19(月) 17:15:320015デフォルトの名無しさん
2005/09/19(月) 17:49:09色々見たつもりなんですが、全然判らないです。
BUILDを色々変えてみたり、個別のディレクトリの下で
やってみたりもしたんですが、やはりスキップされるだけです。。
0016デフォルトの名無しさん
2005/09/19(月) 20:22:570017デフォルトの名無しさん
2005/10/02(日) 05:44:16最新版は撃沈…
0018デフォルトの名無しさん
2005/10/09(日) 05:54:10gdbでリモートデバッグしたいんだけど、どうしたらいい?
0019デフォルトの名無しさん
2005/10/12(水) 21:40:49アイコンクリックで起動しようとしたら
「cygwin1.dllが無いから起動できませんでした。」ってなるんですけど、
スタンドアロンで起動させるためにはどうしたらいいでしょうか?
0020デフォルトの名無しさん
2005/10/12(水) 21:44:00(2)cygwin1.dllにパスを通す。
(3)アプリをmingwでコンパイルし直す。
お好みでどうぞ。
0021デフォルトの名無しさん
2005/10/12(水) 22:13:130022デフォルトの名無しさん
2005/10/16(日) 01:38:15stlportはc:/dev/stlport-4.6.2にインストールしてあり、こちらのビルドは成功しています
c:/dev/stlport-4.6.2/lib/libstlport_mingw32.a
c:/dev/stlport-4.6.2/lib/libstlport_mingw32.dll.4.6
c:/dev/stlport-4.6.2/lib/libstlport_mingw32_static.a
.....
c:/dev/STLport-4.6.2/lib/obj/mingw32/release下には生のオブジェクトファイル(拡張子が.o)があり
それらをMakefileのなかで全部リンクさせるようにしたらリンクできました
成功したMakefileは以下のようにかきました
OBJS = hello.o
STLP_LIB_DIR = "c:/dev/stlport-4.6.2/lib/obj/mingw32/release"
STLP_OBJS = $(STLP_LIB_DIR)/c_locale.o $(STLP_LIB_DIR)/c_locale_stub.o $(STLP_LIB_DIR)/codecvt.o .....
hello.exe: $(OBJS)
g++ -static -v -o $@ $(OBJS)
.cpp.o:
g++ -static -v -c -I. -I"c:/dev/stlport-4.6.2/stlport" $<
失敗したMakefileは以下のようにかきました
OBJS = hello.o
hello.exe: $(OBJS)
g++ -static -v -L"c:/dev/stlport-4.6.2/lib" -l"stlport_mingw32"-o $@ $(OBJS)
.cpp.o:
g++ -static -v -c -I. -I"c:/dev/stlport-4.6.2/stlport" $<
エラーメッセージはいかのとうりです. よろしくおねがいします
hello.o(.text+0x35):hello.cpp: undefined reference to `_STL::cout'
hello.o(.text+0x73):hello.cpp: undefined reference to `_STL::ios_base::_Loc_init::_Loc_init()' ..........
hello.o(.text$_ZN4_STL8ios_base23_M_check_exception_maskEv[_STL::ios_base::_M_check_exception_mask()]+0x1d):hello.cpp: undefined reference to `_STL::ios_base::_M_throw_failure()'
collect2: ld returned 1 exit status
make: *** [hello.exe] Error 1
0023デフォルトの名無しさん
2005/10/16(日) 05:55:170024デフォルトの名無しさん
2005/10/16(日) 06:44:32002522
2005/10/16(日) 11:48:06hello.exe: $(OBJS)
g++ -static -v -L"c:/dev/stlport-4.6.2/lib" -l"stlport_mingw32"-o $@ $(OBJS)
を
hello.exe: $(OBJS)
g++ $(OBJS) -static -L"c:/dev/stlport-4.6.2/lib" -l"stlport_mingw32_static" -o $@
にしたらビルドに成功しました. ありがとうございました
0026デフォルトの名無しさん
2005/10/16(日) 15:51:20Cygwinのバージョン2.510.2.2をフルインストールし、その後
http://www.eaflux.com/cygwin-xfree-jp-supplement/
を見ながら日本語化しました。
startxで正常に起動しました。
しかし、.fvwm2rcの
AddToMenu Window-Ops2を"移動(&M)" Move
等すると、ktermを起動したときなどに左上の[-]メニューが文字化けします。
.fvwm2rcの保存をSJIS,EUC,JISにしても同様です。
一応、xfontsel.exeで-*-*-*-*-*-*-*-*-*-*-*-*-gb2312.1980-*を見てみたら
ひらがなが読み込まれた(フォントが存在している?)ので、安心して
WindowFont,IconFont,MenuStyle,*FvwmButtonsFont,*FvwmIdentFont,
*FvwmWinListFont,*FvwmIconBoxFont,
と、目に付く端から上記のフォントに設定してみたのですけど、やっぱり
文字化けします。
当然、"移動(&M)" Move を "Move&M)" Move とすれば文字化けはしないので、
日本語を諦めれば言い訳ですけど、できるなら設定したいのです。
分かる範囲で教えていただけたら光栄です。
0027デフォルトの名無しさん
2005/10/16(日) 15:56:31002826
2005/10/16(日) 16:15:24そういうかー!
ところで、.fvwm2rcのGB2312での保存の仕方が分かりません。
申し訳ないのですけれど、GB2312での保存もしくはjisx0208.1983(これもフォントが出る)での
.fvwm2rcの保存方法も教えていただけないでしょうか。
0029デフォルトの名無しさん
2005/10/16(日) 17:45:30モドキ等と自称する人種が素の初心者よりよほど始末に悪い見本だぁな
0030デフォルトの名無しさん
2005/10/16(日) 22:30:10> 一応、xfontsel.exeで-*-*-*-*-*-*-*-*-*-*-*-*-gb2312.1980-*を見てみたら
> ひらがなが読み込まれた(フォントが存在している?)ので、安心して
>>28
> 申し訳ないのですけれど、GB2312での保存もしくはjisx0208.1983(これもフォントが出る)での
なぜjisx0208.1983のfontを指定しない?
003126
2005/10/16(日) 23:37:11すでに、-*-*-*-*-*-*-*-*-*-*-*-*-jisx0208.1983-*で.fvwm2rcのフォント設定を
してみたのですけど、それでも文字化けをするのです。
なので、保存のときに特別な操作が必要なのかと思ったのです。
003226
2005/10/17(月) 00:15:01WindowFont,IconFont,MenuStyle,*FvwmButtonsFont,*FvwmIdentFont,
*FvwmWinListFont,*FvwmIconBoxFont,
を、順に一個づつ
-*-*-*-*-*-*-*-*-*-*-*-*-jisx0208.1983-*から
-*-*-*-*-*-*-16-*-*-*-*-*-jisx0208.1983-*
に変更(秀丸を使ってSJIS保存)してみても、文字化け部分の
文字サイズが変わりません。
もしかして、この.fvwm2rc以外の部分が悪さしているんでしょうか。
0033デフォルトの名無しさん
2005/10/21(金) 06:53:28今 MinGW5.0.0 + msys + binutils2.16.1 + gcc4.0.2 + newlib1.13.0 という環境で
構築を行おうとしているのですが、うまくいきません。
collect2.o において kill、pipe、fork が undefined referece となります。
http://quox.org/install/cross/
や
http://iwatam-server.dyndns.org/hardware/h8comm/doc/CrossDevel-jp.html/
を参考にやっているのですが、
他の、クロス環境についてのサイトでも linux 若しくは cygwin 上で
構築している(ことが多い)ので、MinGW 上ではダメなのでしょうか。
また、binutils と gcc は MinGW のサイトからではなく GCC のサイトから落とし、
configure や make は msys 上で行いました。
よろしくお願いします。
003433
2005/10/21(金) 07:12:41各ツールは configure、make、make install を binutils、gcc、newlib の順に
行おうとしています。
今回は、binutils についてはうまくいき、gcc の configure まではうまくいくのですが、
make で先ほどのエラーが出ます。
OS は WinXPです。
0035デフォルトの名無しさん
2005/10/21(金) 07:59:19newlibが要らない気がする。
ターゲットOSは?
0036デフォルトの名無しさん
2005/10/21(金) 09:06:00unixのように使いたかったらcygwin使えと。
0037デフォルトの名無しさん
2005/10/21(金) 12:13:07ビルドのgcc/MakefileのCOLLECT2の記述を消せばいい。
cygwin環境で-mno-cygwinつきでクロス環境構築したけど
collect2は作らなかったよ。
003833
2005/10/21(金) 22:41:02>>35
ターゲットアーキテクチャは h8300-hms です。
>>36
やはり cygwin を使ったほうがいいんでしょうか・・・。
>>37
これからやってみます。
一回一回ビルドに時間がかかるので何度も試せませんが、
少しずつやっていこうと思います。
0039デフォルトの名無しさん
2005/10/21(金) 23:23:59gcc4..0.2でmingwなクロス環境を作りたい時は
configureするときに--without-fixincluesをつけると幸せになれるかもしれない。
0040デフォルトの名無しさん
2005/10/25(火) 23:43:37msvcp60.dllからlibmsvcp60.aを作ってみたりしましたが、どうもstdc++が優先されてしまうようです。
0041デフォルトの名無しさん
2005/10/26(水) 01:40:59とか?
0042デフォルトの名無しさん
2005/10/26(水) 03:01:59C++のシンボル名規則が全然違うから、ムリ。
0043デフォルトの名無しさん
2005/10/27(木) 16:00:40-nostdlib -lmsvcp60.a
試してみましたが、未解決のシンボルのせいでリンクが完了しませんでした。
>>42
どこかをいじって、なんとかできないものでしょうか。
0044デフォルトの名無しさん
2005/10/27(木) 16:08:43間違えました。
-nostdlibを指定しても、libstdc++は勝手にリンクされるようです。
0045デフォルトの名無しさん
2005/10/27(木) 22:04:360046デフォルトの名無しさん
2005/10/27(木) 23:49:48cygwinでコンパイルしたC言語のプログラムの中の
printf("日本語")
の日本語が正しく表示されません。
cygwin_jeをインストールすればいいのでしょうか?
よろしくお願いします。
0047デフォルトの名無しさん
2005/10/28(金) 00:15:17まんぐり返したらリンクは通るようになるかもしれんが
C++ABIが違うのでなかった? スレの最初の議論では結論がよくわからん。
>>46
どーうまくいかなかったんだね?
何も考えずに使うと、コンソールアプリはCP932(シフトJIS)に縛られるのでうまくいくはず。
0048デフォルトの名無しさん
2005/10/28(金) 00:39:17レスありがとうございます。
meadowで書いたプログラムをcygwinで
gcc -o 〜 〜
としてコンパイルした後、そのプログラムを
./〜
で走らせると、
printf("日本語")
の部分が
B&?S+$
とかになってしまうんです。
0049デフォルトの名無しさん
2005/10/28(金) 01:56:320050デフォルトの名無しさん
2005/10/28(金) 01:59:02たぶんソースが7ビットJIS
0051デフォルトの名無しさん
2005/10/28(金) 02:41:43たとえまんぐり返しの整合性が取れても、
スタートアップルーチンの仕事内容とか、例外関係の違いもあるので、
gcc のソースを激しくハックする勇気がないとムリ。
0052デフォルトの名無しさん
2005/10/28(金) 02:43:25>>50
返信ありがとうございました。
ttp://uenox.ld.infoseek.co.jp/cygwin/japanese.html
ここのサイトに乗ってることを一通りやってみましたが、だめでした。
これとはまた別の操作が必要なんでしょうか。
005352
2005/10/28(金) 02:50:40もしかして setup.exe でダウンロード先を
〜.jp 以外のサイトからDLしたのがまずかったのでしょうか?
それが原因なら再インストールするだけなんですが・・・。
0054デフォルトの名無しさん
2005/10/28(金) 02:55:43エディタ見ろよ
0055デフォルトの名無しさん
2005/10/28(金) 02:56:27おまえ、>49>50を読んでないだろ。
0056デフォルトの名無しさん
2005/10/28(金) 04:19:59で、Notepadで同様のソース書いて試せ。
0057デフォルトの名無しさん
2005/10/28(金) 04:28:230058デフォルトの名無しさん
2005/10/28(金) 04:30:520059デフォルトの名無しさん
2005/10/28(金) 04:39:130060デフォルトの名無しさん
2005/10/28(金) 04:53:30006152
2005/10/28(金) 05:15:19簡単に表示させることができました。
最初からcygwin内の問題だと思い込んでいたもので、>>54をみるまで、
みなさんのアドバイスを理解することができませんでした。
いろいろとお世話になり、ありがとうございました。
0062デフォルトの名無しさん
2005/10/28(金) 05:41:520063デフォルトの名無しさん
2005/10/28(金) 06:22:440064デフォルトの名無しさん
2005/10/28(金) 17:56:20で、ガッ
0065デフォルトの名無しさん
2005/10/28(金) 18:04:52信頼できない記述に成り下がるわけで、なにかの勘違いだろうなぁ、、、
006652
2005/10/28(金) 21:12:17正確に言うと、 .emacs 内の
;;; TrueType フォント設定
以下の文の ;; をとったらいけました。
あまり知識がないもので、誤解させてしまって申し訳ありませんでした。
そしてありがとうございました!
0067デフォルトの名無しさん
2005/11/02(水) 08:38:18ファイルをfread()とかposixのread()で読もうとしても全部読めない・・
ファイル途中なのにeofになっちゃう
なぜだろう?
cygwinはリンクされてないのでcygwin環境とは混在されてないんだけど
ちなみに同じソースでcygwin環境でビルドすると問題なく読める
0068デフォルトの名無しさん
2005/11/02(水) 09:39:570069デフォルトの名無しさん
2005/11/02(水) 10:01:060070デフォルトの名無しさん
2005/11/02(水) 19:45:31プログラムサイズがやけに大きくなるのはなぜでしょうか?
C言語でのHello Worldが500KBにもなってしまいます
C++だと1MBとか・・・
-Osをつけても効果がないんです
0071デフォルトの名無しさん
2005/11/02(水) 20:04:170072デフォルトの名無しさん
2005/11/02(水) 21:35:500073デフォルトの名無しさん
2005/11/02(水) 21:56:26C++は、MSVCP*.dllを利用できないので、iostream等をインクルードした場合は
libstdc++を使わざるを得ず、またライセンスの関係でスタティックリンクするしかないため
サイズに関しては諦めるしかない。
・・・しかし、CのHelloWorldで500KBytesは異常。
0074デフォルトの名無しさん
2005/11/02(水) 22:06:11ソースといっても・・・
>>72
-sオプションは知りませんでした
劇的にサイズが減りました
どうもありがとうございました
>>73
無駄なライブラリを引っ張ってきてるだろうなー
と思ってたらやっぱりそうみたいですね
ちなみに
-sなし
C:568,911 バイト、C++:1,055,359 バイト
-sあり
C:5,632 バイト、C++:264,704 バイト
でした
0075デフォルトの名無しさん
2005/11/02(水) 22:14:040076デフォルトの名無しさん
2005/11/02(水) 22:14:560077デフォルトの名無しさん
2005/11/02(水) 22:24:430078デフォルトの名無しさん
2005/11/02(水) 22:34:230079デフォルトの名無しさん
2005/11/03(木) 21:00:55おそらく、ココかと思いまして質問させていただきます。
mpgtx ttp://mpgtx.sourceforge.net/
というmpeg操作用ツールがあり、exeもダウンロードできるのですが、
Win32用はLFS(Large File Support)に対応できていないようです。
#ちょっとバージョンも古い
c++でLFSに対応させる方法はありませんか?
以下、自分でやってみたこと。
まずconfigureを見てLFS対応か判定するために一度サンプルをコンパイルする個所を発見。
LFSとMingwでググってみたら、次のサイトを発見。
ttp://gnuwin32.sourceforge.net/compile.html
環境構築:Mingw + MSYSな環境に上記gnuwin32を加えてLibGw32Cを足した
configure:ドキュメント通りのオプションになるようmpgtxのconfigureを書換えした
また-Iや-Lのパスも変更した。
サンプルのstdio.hはgnuwin32のstdio.hを参照するよう変更。
結果:サンプルコンパイル時にstdinが無い、と言われてしまいました。
gnuwin32にはCだけでC++が無いのでmingwのC++を使っているのですが..
0080デフォルトの名無しさん
2005/11/04(金) 03:54:250081デフォルトの名無しさん
2005/11/04(金) 06:28:17でもread,writeまでラップしないといけなさそうな。
ogg vorbis みたいにファイルアクセスが抽象化されてると楽なんだけどな。
0082デフォルトの名無しさん
2005/11/07(月) 00:26:57可変引数が使えないんですが、これは解決策はありますか?
008382
2005/11/07(月) 00:40:19Windowsではvarargs.hは要らないです。stdio.hだけでいけます。
スレ汚しでごめん。
0084デフォルトの名無しさん
2005/11/07(月) 10:21:390085デフォルトの名無しさん
2005/11/07(月) 16:57:21K&R嫁...って今の時代に新人以外に向かってこんなこと言う機会があるとはね。
0086デフォルトの名無しさん
2005/11/07(月) 23:41:54ANSI-C では stdarg.h を使うんですよ。
mingw 以前に ANSI-C が分かってないので、勉強して出直してね。
0088デフォルトの名無しさん
2005/11/09(水) 17:55:59Download Incomplete. Try again?
じゃねぇよおぉおお
0089デフォルトの名無しさん
2005/11/09(水) 20:45:480090デフォルトの名無しさん
2005/11/09(水) 22:01:23rp4a.c:14: error: stray '\201' in program
rp4a.c:14: error: syntax error at '@' token
というエラーが消えません。
ソースの部分 printf("数字列判定プログラムです."); という単純な文です。
何処かほかの文に問題があるのでしょうか?
0091デフォルトの名無しさん
2005/11/09(水) 22:16:39ぐぐれば出てくると思うけどな。
全角スペースがないかチェックしろ。
0092デフォルトの名無しさん
2005/11/09(水) 22:24:01おお、消えました!
ありがとうございます!
0093デフォルトの名無しさん
2005/11/09(水) 23:07:46うん、した。
ほかに何か考えられることは無いのですか?
0094デフォルトの名無しさん
2005/11/09(水) 23:47:15そういえばcygsetupってIEの設定使うかどうかのチェックボックスもあったろ?
それ付けたり消したりしてテスト。
0095デフォルトの名無しさん
2005/11/10(木) 04:40:42LANが遅いとタイムアウトするっぽいから会社で拾ってるなら要注意。
#何度ダウンロードしなおしたやら。
0096デフォルトの名無しさん
2005/11/10(木) 11:08:040097デフォルトの名無しさん
2005/11/10(木) 12:58:15ttp://www.thisiscool.com/gcc_mingw.htm
ttp://www.reactsoft.com/
009896
2005/11/10(木) 13:20:09ありがとうございます。
これってMinGWのフォルダに上書きすればいいですよね?
0099デフォルトの名無しさん
2005/11/10(木) 17:09:560100デフォルトの名無しさん
2005/11/10(木) 17:21:52100
0101デフォルトの名無しさん
2005/11/15(火) 23:09:38Cygwinを日本語化して、KTerm経由で学校のUNIXサーバに接続しています。
しかし、UNIX側がEUC、Cygwin側のはSJISで日本語化しているため、
文字化けしてしまいます。
そこで、".setenv"をいじってUNIXの方もSJIS化してみました。
それでも、漢字コードの送受信が文字化けします。
ただ不思議なことに、"ls"コマンドを打ち込むと、SJIS設定の日本語ファイル名
は正常に表示されるのです。ちなみに、"ls"コマンドには".alias"をつかって
--show-control-charsをあらかじめ設定してあります。これがなくなると、
ファイル名も同様に文字化けします。
このようなことから、Kterm自体に日本語が表示できない…と言うわけではなさそう
なのですが、どうすればよいのかがさっぱり分かりません
普通の送受信漢字コードに"--show-control-chars"のような設定をできれば
よいのでしょうけれど、そのやり方がさっぱり見当もつかないのです。
分かりにくい説明で申し訳ありませんが、できれば解決の仕方を
ご教授ください。
■ このスレッドは過去ログ倉庫に格納されています