[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 11/19 11:00 / Filesize : 247 KB / Number-of Response : 958
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Cygwin + MinGW + GCC 相談室 Part 4



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としています。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<247KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef