1 名前:デフォルトの名無しさん [2008/09/13(土) 00:38:02 ] Windows上で動作するフリーの開発環境 CygwinとMinGWに関する相談スレッドです。 過去スレ: cygwin + mingwn + gcc 相談室 Part3 pc11.2ch.net/test/read.cgi/tech/1177944767/ cygwin + mingwn + gcc 相談室 Part2 pc11.2ch.net/test/read.cgi/tech/1126103347/ cygwin + mingwn + gcc 相談室 pc8.2ch.net/test/read.cgi/tech/1058134693/ 関連サイト: Cygwin www.cygwin.com/ MinGW www.mingw.org/ 関連スレッド: GCCについて part8 pc11.2ch.net/test/read.cgi/tech/1192201659/ 【激遅】AppleGCC【絶望】 pc11.2ch.net/test/read.cgi/tech/1173267844/
301 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 07:39:15 ] たぶんこのスレにそんなマニアックなケース答えられる人はいないんじゃないかと。
302 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 07:59:25 ] DPMIはDOSエクステンダの下請けに過ぎず DJGPPのリンカはDOSエクステンダに相当するものをスタブとして取り込んでいるから出力ファイルが大きくなる
303 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 08:08:37 ] go32.exeが組込まれるんだっけ
304 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 08:09:50 ] 他にも即値やディスプレースメントが32bitで大きくなったり、アラインメントが32bitになったりで いくらでも16bitコードより大きくなる要素はある
305 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 08:18:41 ] んなもん、gccのバイナリがデカのは今も昔も変わらん。 go32とか関係なく vcとMingw gccではやはりバイナリサイズが全然違う。
306 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 10:13:49 ] >>298 そんな過去の鈍足PCを今のPCと較べても、全く意味がありません。 それとも、クロック周波数の20MHzという意味が理解できませんか? いずれにしても、鼬害です。レトロPC板にでもお帰りください。
307 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 10:25:40 ] 298 みたいな時空を超えた書き込みを 太鼓腹のオッサンがシコシコ打ちこんでると思うとキモイな
308 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 10:41:15 ] 同族嫌悪というやつですか?
309 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 11:25:52 ] PC-9801にMS-DOSとはまた懐かしいものを出してくるなあ
310 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 12:48:25 ] あんまり虐めてやるなよ
311 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 14:54:36 ] 古いものを好き好んで触るのは人の自由だと思うが 騒ぎ方がどうにもキチガイじみてキモいな
312 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 23:12:56 ] その3つを比べることに何の意味があるんだか… #とりあえず「DJGPPってまだあったんだ」とか思った
313 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 06:16:12 ] レトロPCを使ってる時点で処理効率など問題外なのだから 32bitコードなど中途半端にひよったものを使わずに 堂々と16bit縛りでいくべき
314 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 12:53:48 ] dosプログラミングはずっと無料版のLSI C86使ってたな。 farポインタとか懐しい。
315 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 15:03:43 ] >>300 7000円あるなら中古でWindows98の入ったPC買えるだろww
316 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 22:33:46 ] そうかなあ
317 名前:298 mailto:sage [2009/04/10(金) 04:12:14 ] >>315 その後、BCC v3.1J+TASMとか、NASM 2.06rc1で楽しくプログラミングしてます。 先日、皆さんのご指摘通り、32Bit Cコンパイラと16Bit時代のコンパイラを 比較する浅学さを自己批判しました。GCCはWinXPのPC/ATマシンで活躍してます。 自分は普通にCygwinのバイナリパッケージを使ってます。 あと、Borland C++ Development Suite 5.0Jというのを、CDだけ入手しました。 オクで\2,000でした。印刷物のマニュアルがないのがイタいですが、 Win95/NT3.51/DOS/OS/2対応の総括的位置付けのバージョンっぽいので、 おいおい試したいです…って、GCCと関係なさ過ぎたwすいませんww
318 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 16:37:09 ] すいません 質問下手かもしれないけどよろしいでしょうか? Cygwinのインストール時、boostも一緒にインストールすることができますよね? 私の場合はver(?)1_33_1なので/usr/include/boost-1_33_1/boost に主なファイルが展開されました。 次はcppファイルのコンパイルなんですが #include <boost/thread.hpp> ↑を含んだa.cppファイルをコンパイルする場合、 $ g++ a.cpp -I"/usr/include/boost-1_33_1/" -lboost_thread-gcc-mt といったコマンドで通りました。んで、 $ ./a.exe で一応exeファイルは実行できるんですが、生成したexeファイルはコマンドによる実行は有効のようで、 winからのダブルクリック起動だと 「cygboost_thread_gcc_mt-1_33_1.dllが見つかりません」といったメッセージがでます。。。 どうすれば改善できるでしょうか?多分boostの参照あたりも間違っていると思うんですが・・・ あんまりUNIXコマンドは詳しくないのでちんぷんかんぷんですw
319 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 17:21:34 ] >>318 $ cygcheck ./a.exe を実行してcygboost_thread_gcc_mt-1_33_1.dllの存在するディレクトリを調べて、 Windowsの環境変数PATHに追加する。
320 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 17:58:14 ] >>319 実行してみたけど無理でした・・・ そもそもboostを導入する方法はこれでよかったのでしょうか・・・
321 名前:319 mailto:sage [2009/04/12(日) 18:50:24 ] 正確に書いてくれ。「実行してみたけど無理でした・・・」はどうなったのかわからん。 1)cygcheckが実行できなかった。 1-1)cygcheckが見つからなかった 1-2)cygcheckが見つかったが、cygcheckの実行時にエラーが出た。 1-3)cygcheckが見つかり、cygcheckの実効でもエラーが出なかったが、cygboost_thread_gcc_mt-1_33_1.dllが見あたらなかった。 2)cygcheckが見つかり、cygboost_thread_gcc_mt-1_33_1.dllが存在するディレクトリも判明したが、Windowsの環境変数PATHの設定で 2-1) Windowsの環境変数PATHを設定する方法がわからない 2-2) Windowsの環境変数PATHを設定する場所はわかったが、PATHの書式を知らない。 2-3) Windowsの環境変数PATHをユーザ環境変数とシステム環境変数のどちらに設定すればよいかわからない。 2-4) Windowsの環境変数PATHをユーザ環境変数に追加したが、改善しなかった。 2-5) Windowsの環境変数PATHをシステムザ環境変数に追加したが、改善しなかった。 3) 他にもあるかもしれんが、エスパーするのに疲れたのでここまで。
322 名前:318 mailto:sage [2009/04/12(日) 19:01:03 ] check成功 ↓ cygboost_thread_gcc_mt-1_33_1.dllの場所が分かった 私の場合はD直下にcygwinフォルダがあるのでD:\cygwin\binにあった ↓ 環境変数PATH コントロールパネル→システム→詳細から 片方ずつと両方で3パターンで試しした。 両方とも変数名はPATH 変数値はD:\cygwin\bin;D:\cygwin\usr\bin; %PATH% ↓ 直らない いまここです 2-4 or 2-5ってとこです。。。
323 名前:319 mailto:sage [2009/04/12(日) 19:01:48 ] $ cygcheck -cd | grep boost boost 1.33.1-4 boost-devel 1.33.1-4 libboost 1.33.1-4 $ g++ -Wall -Wextra boost_exam.cpp -I"/usr/include/boost-1_33_1/" -lboost_thread-gcc-mt $ ls a.exe a.exe* $ cygcheck ./a.exe .\a.exe C:\cygwin\bin\cygboost_thread-gcc-mt-1_33_1.dll C:\cygwin\bin\cygwin1.dll C:\WINDOWS\system32\ADVAPI32.DLL C:\WINDOWS\system32\KERNEL32.dll C:\WINDOWS\system32\ntdll.dll C:\WINDOWS\system32\RPCRT4.dll C:\WINDOWS\system32\Secur32.dll
324 名前:319 mailto:sage [2009/04/12(日) 19:10:05 ] >>322 Windowsの環境変数にd:\cygwin\binを追加してから、 **新たに** Windowsのコマンドプロンプトを開いて「echo %PATH%」を実行し、 cygwinのパス(今回だとd:\cygwin\bin)が存在することを確認する。
325 名前:319 mailto:sage [2009/04/12(日) 19:14:04 ] 確認できました
326 名前:319 mailto:sage [2009/04/12(日) 20:36:56 ] >>326 じゃあ、次に、そのコマンドプロントで「ls --version」を実行してみる。 d:\cygwin\binにパスが通っていれば(= PATHの設定が正しいなら)、 下のようにlsコマンドのバージョン情報が表示されるはず。 ls (GNU coreutils) 6.10 Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Richard Stallman and David MacKenzie. で、この状態でエクスプローラーから、さっきのa.exeを実行してみる。 もし「cygboost-thread-gcc-mt-1_33_1.dllが見つかりません。……」のエラーが出るようなら、 「Windowsをログアウト」「再ログイン」する(= explorerにユーザー環境変数を反映させる) ちなみに、「システム環境変数PATH」の方を変更したら、Windowsを再起動してから試すこと。
327 名前:318 mailto:sage [2009/04/12(日) 20:39:47 ] ええ!?再起動しないと駄目なのかい!?
328 名前:319 mailto:sage [2009/04/12(日) 20:50:50 ] Explorerに環境変数を反映させるには、Explorerプロセスの再起動が必要。 Windowsの環境変数はExplorerの親プロセスに設定される。しかし、それを子プロセスに反映するには、子プロセスを再起動する必要がある。 (これはWindowsだろうと、UNIXだろうと、MS-DOSだろうと、同じ)。 もっとも、今回はExplorerだからログアウト→ログオンで、行けそうな気がする。(面倒なので試してない) なお、Windowsサービス (ApacheとかPostgreSQLとか)に環境変数の変更を反映させるなら、Windowsサービスの親プロセスの再起動、つまりWindowsの再起動が必要。
329 名前:318 mailto:sage [2009/04/12(日) 20:52:35 ] やった!!できました!! 長い時間ありがとうございました
330 名前:319 mailto:sage [2009/04/12(日) 21:00:50 ] おめでとう。これで肩の荷が下りたよ。
331 名前:デフォルトの名無しさん [2009/04/27(月) 14:40:09 ] MinGW(gcc3.4.5)でSTLport5.2.1のビルドができない理由がやっとわかりました STLport5.2.0でMinGWのサポートは一旦打ち切りになっているようです 従ってSTLport5.1.7以前を使う必要があります それから少しファイルの修正が必要です 1. Open the file "stlport\stl\config\user_config.h" to uncomment the macro _STLP_NEW_PLATFORM_SDK. 2. Locate the following lines in file "stlport/stl/config/_gcc.h": # if defined (_STLP_NEW_PLATFORM_SDK) /* For the moment the Windows SDK coming with Mingw still mimik the old platform SDK. */ # undef _STLP_NEW_PLATFORM_SDK # endif then comment all these lines or replace them with: # include <w32api.h> # if (__W32API_MAJOR_VERSION > 3) || ((__W32API_MAJOR_VERSION = 3) && (__W32API_MINOR_VERSION >= 12)) # if !defined(_STLP_NEW_PLATFORM_SDK) # define _STLP_NEW_PLATFORM_SDK 1 # endif # endif 以上の修正でコンパイルできます std::mapを使うと__tmpが初期化前に使われているとか警告が出ますが 無視していますけどいいのでしょうか?
332 名前:デフォルトの名無しさん mailto:sage [2009/04/27(月) 14:41:35 ] なお上記の修正は次のFORUMから引用しました sourceforge.net/forum/forum.php?thread_id=3036652&forum_id=490891
333 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 09:21:49 ] エラーメッセージの日本語化って進んでますか?
334 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 16:21:30 ] 日本語化されたエラーメッセージ見ても、分からないという落ち?
335 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 22:02:55 ] >>333 1.7でLANG=ja_JP.UTF-8なら、日本語のメッセージカタログ持ってるやつは、日本語でメッセージを出す模様。 メインの環境を1.7に切り替えたんだが、localeまわりはまだ微妙だな……。まぁ、壊滅状態の生1.5よりはマシだけど。 しかし、ちゃんと動くようにする意志はあるんだろうか。
336 名前:デフォルトの名無しさん mailto:sage [2009/05/03(日) 12:42:57 ] MSYSのm4が古い問題ってどうやって回避するの?
337 名前:デフォルトの名無しさん mailto:sage [2009/05/03(日) 17:47:45 ] Component Object Model使うサンプルください (しかし略すとCOMなんて最低な名前・・・検索で余計なのがひっかかりまくりw)
338 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 12:20:21 ] gccでC言語のプログラムをコンパイルしたら、 そのライセンスって制限付く? 標準Cライブラリはgccのものを使うとして。
339 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 12:32:56 ] GPL/LGPLでは。
340 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 12:45:10 ] 確かgccを改変してMy_Compilerとかいうソフトを作るんならGPLだが、 産物に関してはGPLが及ばないのではなかったかな? libstdc++とかも例外条項付きGPLだから大丈夫とか聞いた気がするけど。 どなたか有識者plz!
341 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 12:57:38 ] >>340 前者GPL、後者LGPL。
342 名前:338 mailto:sage [2009/05/04(月) 13:15:47 ] >>339-341 なるほど、産物にも影響するのね。 どんなにヌルくてもLGPLが要求されるなら到底 仕事じゃ使えないわな。。。
343 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 13:23:40 ] そこらの家電には結構入っているがな。 どんな仕事だよ。
344 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 13:28:46 ] >340 GCC については www.gnu.org/licenses/gpl-faq.html#CanIUseGPLToolsForNF で、libstdc++ については ttp://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.license.what_restrictions で、コンパイル対象のコードのライセンスに対しては制約なしとなってる。
345 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 13:28:57 ] >>343 リバースエンジニアリングされると困る仕事。 まあどうせされるんだろうが、それにしたってLGPLだと明示的に禁止出来ないじゃない。
346 名前:338 mailto:sage [2009/05/04(月) 13:40:41 ] >>344 おお、決定打ありがとう。 libstdc++はつまり 「オープンソースにしてくれるとうれしいけど、 まあそうじゃなくても良いよ。特に制約は科しません」 という事だよね。 ここは理解出来たのだがGCCについては今ひとつだ。 よろしければ教えていただけませんでしょうか? 「GCC(や他のGPLでライセンスされたエディタなど)を使って 開発されたソフトウェアには何ら制約はありません。」 「しかしBisonは自身のコードの一部をコピーするのでGPL強制です。」 BisonとやらはGCCの一部なのかい? だとするとやっぱりGCCを使うと結果的に産物もGPL強制?
347 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 13:45:53 ] >>346 ソースをベースにしたらGPL ライブラリ/バイナリを使ったらLGPL と覚えておけばいい。 明示的な禁止に意味があるとは思えないが。
348 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 13:51:38 ] >>347 LGPLだとライブラリをstaticリンクした時が致命的じゃね。 ソースコードまたはオブジェクトコードの配布を拒否してはならない だと!?
349 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 13:52:42 ] >>348 心配すんな、ダイナミックリンクも対象だ。 今時何言ってるんだ、おまえは。
350 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 13:53:40 ] >>349 え?ダイナミックリンクでもソース開示強制なの?
351 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 13:58:40 ] >>350 自分で書いたことも読めないのか。 とりあえずまず自分で読んだらどうだ。
352 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 14:01:12 ] >>346 > libstdc++はつまり > 「オープンソースにしてくれるとうれしいけど、 > まあそうじゃなくても良いよ。特に制約は科しません」 この翻訳(意訳)でOK。 > 「GCC(や他のGPLでライセンスされたエディタなど)を使って > 開発されたソフトウェアには何ら制約はありません。」 ここもこの翻訳(意訳)でOK。 > 「しかしBisonは自身のコードの一部をコピーするのでGPL強制です。」 ここもこの翻訳(意訳)でOK。 > BisonとやらはGCCの一部なのかい? > だとするとやっぱりGCCを使うと結果的に産物もGPL強制? 現在のGCC(g++しか記憶にないが)はbison使わないんじゃなかったか? 以上まとめると、商用利用も万事OKで全く制約はないと思われ。
353 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 14:02:06 ] >>350 いや再確認してるだけだろ、無能はだまっとれ。
354 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 14:47:53 ] >346 元々この FAQ の項は GPL なツールを使ってフリーじゃないプログラムを開発できますか?という項。 で、問題ないというのが最初の段落なんだけど、自身のコードの一部をコピーするものもある、というのが次の段落に説明されていて その例として Bison (構文解析器を作成する為のツール) が挙げられている。 コピーされたコードについては元々のライセンスが適用されるんだけど、Bison に関して言えば例外が認められていて非フリーの プログラム作成に使っても問題ない、というのが最後の段落。 仮に GCC が Bison を利用していたとしても影響を受けるのは GCC まで。 結局、いずれにしろ GCC の生成物を非フリーとして利用してもよい。 まとめると GPL なツールを用いて非フリーのプログラムを作成しても基本OKだけど、ソースをコピーするものについては それぞれ例外条項があるかどうか確認するべし、となる。
355 名前:346 mailto:sage [2009/05/04(月) 15:03:55 ] >>352 >>354 なるほど、だいぶ分かりました。 GCCは非フリー利用にも耐えうる事が ちゃんとオフィシャルに示されているわけですね。 GCCが発展した理由が分かったような気がしてきました。
356 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 12:29:02 ] C++ code - 28 lines - codepad ttp://codepad.org/1sFiMF2t このコードで g++ (GCC) 3.4.5 (mingw special)にて コンパイルオプション -O2 -Wall としたときに発生する警告について、皆様のお知恵をどうかお貸しください。 C:/PROGRA~1/mingw/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3. 4.5/bits/stl_tree.h: In member function `typename std::_Rb_tree<_Key, _Val, _Key OfValue, _Compare, _Alloc>::_Link_type std::_Rb_tree<_Key, _Val, _KeyOfValue, _C ompare, _Alloc>::_M_copy(const std::_Rb_tree_node<_Val>*, std::_Rb_tree_node<_Va l>*) [with _Key = std::string, _Val = std::pair<const std::string, int>, _KeyOfV alue = std::_Select1st<std::pair<const std::string, int> >, _Compare = std::less <std::string>, _Alloc = std::allocator<std::pair<const std::string, int> >]': C:/PROGRA~1/mingw/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3. 4.5/bits/stl_tree.h:1029: warning: '__top' might be used uninitialized in this f unction C:/PROGRA~1/mingw/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3. 4.5/bits/stl_tree.h:365: warning: '__tmp' might be used uninitialized in this fu nction というwarningが出てしまいます。 g++ 〜〜.cpp -O2 でも g++ 〜〜.cpp -Wall でもwarningが出ないのですが g++ 〜〜.cpp -O2 -Wall だとwarningが出てきます。 [C++] MingW warning in one of the stock sources? - GameDev.Net Discussion Forums ttp://www.gamedev.net/community/forums/topic.asp?topic_id=523290 ここの人も同じような問題に当たっているようですが、これは何がおかしいのでしょうか?
357 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 10:14:00 ] >>356 詳しいことは知らんが、その警告は最適化しないと出てこない。 要は、最適化のフェーズで変数を未代入で参照しているようなパスを見出しているのだろう。 手元の3.4.4のソースだと、どちらも関数の戻り値で初期化しているように見えるのだけど、3.4.5で変わったのかもしれない。 尤も、例えば次のようなコードでもその警告は出るので余り心配する必要はないだろう。 -- int main() { int foo; for (int ic = 0; ic < 10; ++ic) { if (ic) { ++foo; } else { foo = 0; } } printf("%d\n", foo); return 0; }
358 名前:356 mailto:sage [2009/05/07(木) 11:30:15 ] >>357 良い例ありがとうございます。 では、心配しないで進むことにします。 お世話になり、ありがとうございました。
359 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 11:42:18 ] どうでもいいけど、>357のソースをgcc -std=c99 -O3 -funroll-loops -Wallしたら警告が消えた。 どうやら、O3の最適化とunroll-loopの組み合わせでループを全展開して代入だけにしてしまうらしい。 と思ってアセンブリ出力を見たら只管インクリメントしていて笑えた。
360 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 21:45:44 ] >>356 Binary Hacksに>>357 が言ってることが書いてあった気がする
361 名前:デフォルトの名無しさん [2009/05/13(水) 16:56:51 ] GNU ncursesで日本語表示をするやり方を教えてください。 環境はWindows Vista Businessのcygwinです。 configure --enable-widecの後makeしたncursesを使っています。 コンパイルはgcc test.c -lncurseswです。 "ほげほげ"と表示させたいのですが文字化けしてしまいます。 ただのprintf("ほげほげ");は正常に表示されています。 ソースは以下です。 <ncursesw/ncurses.h> #include <locale.h> main(){ setlocale(LC_ALL,""); initscr(); addstr("ほげほげ"); refresh(); sleep(1); endwin(); } google検索してみた結果、ほぼ同じ状況の方を見つけ、 Windows Service for Unix3.5を使うと表示できるようであることはわかったのですが、vista なので困っています。 cygwinで文字化けせずに表示する方法はないでしょうか。
362 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 22:53:42 ] 今のcygwinはsetlocaleをほとんど無視する仕様だった希ガス
363 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 23:28:01 ] >>362 setlocaleはCygwin-1.7なら一応動く。(つか、setlocaleしないとまともに動かず、それはそれで困っているので現在hack中) ただし、wcwidth/wcswidthも腐ってるので、ncursesw使っても日本語はNGというしょぼーんな結果に。 そのうち何とかするつもりなので気長に待て。
364 名前:361 [2009/05/14(木) 08:35:11 ] cygwinで日本語表示は厳しそうですね・・・ 仮想PCにXPを入れてWindows Service for Unix3.5上で動かしてみたら、 先のサンプルでの”ほげほげ”の表示の確認ができました。 仕方がないので、Windows Service for Unix3.5を使っていこうと思います。 ありがとうございました。
365 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 10:00:05 ] >>364 XWindow使えば少しはましだった希ガス。尤も、そこまでしてCygwinにこだわる必要もない黄モス。
366 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 10:43:20 ] Vista Businessなら仮想環境使わなくてもSUA(SFUの後継)使えなかったっけ
367 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 17:20:20 ] cygwinのwcwidth/wcswidthが腐ってても--enable-widecつけてビルドすると libutf8のほうの使うようになるから、おkだった希ガス あとはsetlocale(LC_ALL, NULL);が常にja_JP.UTF-8を返すようにしたcygwinのdllと 少なくてもUTF-8表示に対応した端末(漏れの場合はck 用意したら表示できたYO
368 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 19:35:45 ] #include <iostream> int main() { std::cout << "能" << std::endl; return 0; } このコードがg++ 3.4.5 Mingwでコンパイルできません。 どうすれば良いでしょうか?
369 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 20:04:26 ] "能\"
370 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 20:27:09 ] >>369 逆じゃねーの?
371 名前:368 mailto:sage [2009/05/23(土) 20:35:41 ] "能\" でいけました。 ありがとうございました!
372 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 20:37:40 ] gcc --input-charset=cp932 --exec-charset=cp932
373 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 20:40:27 ] >>368 seclan.dll.jp/dtdiary/2009/dt20090324.htm
374 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 20:50:49 ] なるほど、文字コードの問題なのですね。 ありがとうございます。
375 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 21:14:17 ] 文字コードの問題だけじゃなくてインストーラでインストールした場合 iconvがリンクされてないので古いcc1.exeとcc1plus.exeを持ってこい という話
376 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 21:33:32 ] なるほど、 多少の処置が必要なのですか。 ありがとうございます。
377 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 21:42:50 ] 俺もそれでハマったんで 本当にMinGWのインストーラは糞だわ というか8ビット圏の人間無視してるだろって感じ
378 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 23:59:53 ] www.tdragon.net/recentgcc 俺はこれ使ってる
379 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 01:10:33 ] >>378 これSTLportの最新版(5.2.1)ビルドできる?
380 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 02:23:34 ] >>379 若干の修正が必要だが一応ビルドできた EHテストも通ったけど ちゃんと使えるライブラリとしてビルドできたかどうかは不明
381 名前:デフォルトの名無しさん [2009/05/29(金) 11:04:07 ] MinGWでGDI+ができた人いませんか?
382 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 16:29:42 ] ハッシュ検索関係hcreate/hsearch/hdestroy cygwinにはあってMinGWにはないのな -mno-cygwinで使いたきゃ自力で実装するしかないっと
383 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 09:52:38 ] >>382 MinGWを使うってことは,POSIXなAPIを諦めてWin32 APIと生きる覚悟をするってことだ
384 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 06:02:06 ] -- foo.c extern void g(); void f() { g(); } -- gcc -shared foo.c -o foo.so こんな共有ライブラリを作る場合、 シンボルgについて何も知らなくても実行時に解決してくれるはずですが、 cygwinで同じことをやろうとするとfoo.soがビルドできません。 (undefined reference to `_g' とldに言われる) 何か別のオプションが必要なのでしょうか?
385 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 06:07:49 ] foo.dll?
386 名前:384 mailto:sage [2009/06/04(木) 07:48:52 ] >>385 あ、cygwinでは-o foo.dllでやってました。 で、スマソ自己解決 ttp://www.bookshelf.jp/2ch/unix/1107587275.html の273以降に話が出てました。 > WindowsのDLLじゃビルド時にシンボル解決をしてやらないといけないんだよね。 > なんかアホらしい仕様。 orz gcc -shared foo.c -o foo.dll -lowner_of_g ちゃんと書かなきゃいけないようです。 書けない場合は自分でシンボル解決しなきゃいけないのか
387 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 16:27:27 ] >>386 www.pushaa.jp/~hizuki/ のコピペで何も考えずに作ってたけど (さらに"-s"付けると関数名そのままで呼べるようになる) そんな制限があったのか
388 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 21:48:52 ] >384 一応こんなのもあるべ。 ttp://alain.frisch.fr/flexdll.html
389 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 04:54:12 ] >>381 ttp://wiki.bb4win.org/wiki/Using_GDIPlus_With_MinGW
390 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 16:16:43 ] Windows XP SP2です。 g++ source.cpp というコマンドでコンパイルすると、 コンパイルエラーが大量に出て 上の方が読めなくなってしまいます。 コンパイルエラーは、特に最初の方が大事なわけで これでは困るのですが、どうしたら全てのエラーメッセージがでるでしょうか? g++ source.cpp > result.txt の様にリダイレクトしてみたのですがだめでした。
391 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 17:17:11 ] >>390 オイオイ。 標準エラー出力をとらなきゃ駄目だろ。 g++ source.cpp 2> result.txt っていうかソースコードをある程度のサイズに分割しておけば、 最初の方が流れてしまうほど大量のエラーメッセージにはならないはず。
392 名前:390 mailto:sage [2009/06/13(土) 17:21:01 ] >>391 2> で取れるのですか。 初めて知りました。 ありがとうございます。 >ソースコードをある程度のサイズに分割しておけば、 まさにおっしゃる通りです。 ・・・が、特定のクラスのデバッグ用途のソースなため 分割の意味があまりなく、またエラーが出る時はソース全てに渡り むっちゃくちゃ一斉に出るという特徴がありまして。
393 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 18:56:04 ] OSの使い方を先に覚えないとな
394 名前:デフォルトの名無しさん [2009/06/15(月) 19:37:27 ] boostのmulti_array.hppに関して質問させてください。 とあるプログラムをコンパイル&インストールしようと思い、cygwinを導入しました。 コンパイル&インストールにはboostの1.34以上が要求されていました。 しかし、cygwinのパッケージに含まれていたboostが1.33である事に気付かず、 そのまま行ってしまい、途中でエラーが出てコンパイルが中断しました。 そこで漸くboostのバージョンが要求を満たしていなかった事に気付き、 cygwinのsetup.exeを立ち上げてboostをアンインストールし、 homepage3.nifty.com/kaku-chan/boost/install.html を参考に 最新バージョンのboostをインストールしました。 その後、もう一度コンパイル&インストールを試してみたのですが、 途中で、 checking boost/multi_array.hpp usability... no checking boost/multi_array.hpp presence... no checking for boost/multi_array.hpp... no configure: error: "boost/multi_array.hpp is unavailable" とエラーが表示され、コンパイルが止まってしまいます。 この状態で数時間悩み続けているのですが、どうにも解決の糸口が見つかりません。 これはboostのインストールがうまくいってないという事なのでしょうか? どうぞよろしくお願いします。 OSはXPのSP2です。
395 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 22:59:20 ] >>394 > これはboostのインストールがうまくいってないという事なのでしょうか? たぶんそう。 bjam は cygwin のパス変換ルールを知らないかもしれない。 実際にどこにインストールされたか探してみなYo
396 名前:394 mailto:sage [2009/06/16(火) 22:24:20 ] >>395 boostがインストールされたディレクトリのパス ***/boost1_39/boostを ***/boostに変更してやると、無事にコンパイルできました。 有難うございました。
397 名前:デフォルトの名無しさん [2009/06/17(水) 16:55:45 ] cygwin使ってんだけどxemacsの中で日本語入力ってどうやればいいんですか?
398 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 21:11:57 ] >>397 帰れ、死ね
399 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 04:32:15 ] 概要: MSYS1.0のrxvt/sh+cmd.exeで、特定の漢字を含む シェルスクリプトを実行できません。 例: $ cat test.sh echo "冒" $ sh test.sh test.sh: line 2: unexpected EOF while looking for matching ``' test.sh: line 3: syntax error: unexpected end of file test.shはShiftJISで、rxvtの-fnもTerminalに設定しています。 マルチバイト文字を正しく認識していない為だと思われます。 対処法を御存じの方は、よろしくお願いします。
400 名前:399 mailto:sage [2009/06/21(日) 04:43:15 ] 追記: ちなみに/etc/profileにてexport LANG=ja_JP.SJISとしています。