[表示 : 全て 最新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/

403 名前:399 mailto:sage [2009/06/21(日) 22:03:17 ]
>>402
解決しました。ありがとうございます!

404 名前:デフォルトの名無しさん [2009/06/22(月) 10:17:57 ]
拡張子がlaとかlaiのファイルって何?

405 名前:デフォルトの名無しさん [2009/06/22(月) 10:31:24 ]
reimp/pexportsのバグか、gdiplusのバージョンが違うためか、
libgdiplus.aを正しく作成することができません。
誰かMinGW用のlibgdiplus.aというファイルくれませんか?

406 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 23:08:35 ]
あんまり知られてないけど、
gcc hoge.o c:\windows\system32\gdiplus.dll -o hoge.exe
って感じで直接DLLのファイル名を指定できる。
インポートライブラリ不要。

407 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 23:45:45 ]
>>404
libtoolで使うファイル
libtoolは何のために使うのかというと・・・・↓にまかせた

408 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 20:59:55 ]
ttp://sourceforge.net/forum/forum.php?forum_id=969885
> The MinGW.org team is pleased to offer a binary release of GCC 4.4.0.

キター

409 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 21:16:33 ]
おお、ついに来たか!
とりあえず 4 必須の ffmpeg とかビルドしてみよ

410 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 21:37:57 ]
MinGWが正式にgcc4.xを採用したって考えて良いの?
やっとか。

411 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 00:29:39 ]
TDM一回消して入れ直した方がいいのかな



412 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 00:03:15 ]
>407
共有オブジェクト、動的ライブラリ、DLL 等、実行時に読み込まれるライブラリは環境によって
その扱いが大きく異なる。これらの違いを吸収し同じように扱えるようにするのが libtool。

413 名前:デフォルトの名無しさん [2009/06/29(月) 08:49:47 ]
学校の課題で、日本語のテキストを入力して、日本語の辞書(EUC)を元に、新しいテキストを生成して出力するシステムを
C言語で作りたいのですが、CygWinで実行しても文字化けしてしまいます。
どうすればいいのでしょうか?

414 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 16:12:57 ]
>>413
cygwin用にcp932の辞書を用意するとか、iconv使って自前で変換するとか、好きにしてください。

415 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 17:35:24 ]
Win7の次のWindowsはデフォルトでUTF8にするために
A系APIにはもれなく意味不明のウェイトつけてほしいw

416 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 03:31:29 ]
MinGWのinfo/ディレクトリにあるdirでは、そこにあるほとんどのinfoファイルがシカトされているけど、
これは意図的にそうなのかな

417 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 03:35:11 ]
「ほとんどの」は言い過ぎた。。例えばgccとcpp

418 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 05:59:49 ]
>>405
pexportsなら、gdiplus.dllのほかに、wineのソースあたりからヘッダ群を持ってきて
"pexports -h gdiplus.h gdiplus.dll > gdiplus.def"
reimpなら、Platform SDKからGdiPlus.libを持ってきて
"reimp gdiplus.lib"

419 名前:デフォルトの名無しさん [2009/07/02(木) 10:25:39 ]
GDI+は、ここのページでいけました。ありがとうございました。
alfps.izfree.com/libraries/cpp/gdiplus_for_mingw/

420 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 16:29:34 ]
4.4.0で初めてMinGWに触れました
gccで手持ちのサンプルプログラムは大抵動作することは確認したのですが、
gcjでネイティブコンパイルしたプログラムを実行すると、
This application has requested the Runtime to terminate it in anusual way.
Please contact the application's support team for more information.
とエラーが出てしまい、強制終了してしまいます
-CオプションをつけてJAVAバイトコードにコンパイルした場合、問題なく動作するものが生成されることを確認済みです
何か特殊なランタイムライブラリが必要なのでしょうか?

421 名前:416 mailto:sage [2009/07/04(土) 07:13:37 ]
ごめん、なんか書いてあった
www.mingw.org/wiki/HOWTO_Install_the_MinGW_GCC_Compiler_Suite#comment-103



422 名前:デフォルトの名無しさん [2009/07/05(日) 15:51:51 ]
tcshをCygwinをインストールする際に、選択し忘れていました。
tschだけ個別にインストールってできますか?

423 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 16:01:00 ]
できる

424 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 16:02:37 ]
出来ます
インストールの時に使った cygwin setup で
任意のパッケージの追加/削除/アップデートが出来るようになってるから
もう一度起動してみてください

425 名前:デフォルトの名無しさん [2009/07/05(日) 16:06:28 ]
ありがとうございます!

426 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 22:21:43 ]
cygwin から gcc-4, g++-4 etc がインストールできるようになり、
/etc/alternatives で g++ を g++-4.exe のシンボリックリンクにしたのですが、
iostream などをみつけられなくなってしまいました。他にどんな作業が必要なのでしょうか。
gcc では問題ないようですが。

427 名前:デフォルトの名無しさん [2009/07/05(日) 22:24:43 ]
gcc-4.4では、wchar_tをネイティブで扱うwprintf()は廃止されてしまいましたか?
なんかバージョンあげてからずっと使えないんですが・・・
実装中。というような事はどこかで見たんですが、代用関数などは無いのでしょうか。。。
処理的に非常に困ります。

428 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 22:55:36 ]
Cygwin.batにコマンドの引数を与えることはできるでしょうか

429 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 09:01:57 ]
できる。


430 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 09:48:43 ]
>>427
諦めるべき

431 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 17:53:56 ]
>>429
教えろよ



432 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 21:05:44 ]
>>431
何を?

433 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 21:18:40 ]
>>427
mingwの4.4だとlibiconvがリンクされてないからかも?

434 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 22:12:42 ]
MinGWのgcc4.4.0が正式に出ても俺はlibiconvがリンクされてない
可能性があるって理由だけでTDM-MinGWを使い続けてる

435 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 23:35:45 ]
自分でビルドすれば?
4.4.0 のバイナリあるんだから
そこからのビルドは簡単だで

436 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 23:36:36 ]
MinGW使わない方は、絶望的?

437 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 00:16:26 ]
gcc-4.4.0-mingw32-notes.txtから
libiconv Runtime [REQUIRED]
libiconv-1.13-mingw32-dll-2.tar.gz


438 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 19:49:18 ]
gcjは何でlibgcjを静的リンクしないと動作しないコードを吐くの?

439 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 02:46:17 ]
wprintf()が使えない・・・って思ったら
タイムリーなレスがあった。

Win+GCCの場合、mingwじゃないとダメなのか・・・


440 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 06:20:25 ]
もう、wchar_tはWin用。
なんつーか、何も考えずに全ての文字が固定長で扱えて
stringとかSTLみたいにオーバーヘッドのない操作方法があればいいんだがなぁ・・・
UTF-16も実は固定長じゃねぇし。ダメすぎる。

441 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 10:11:53 ]
こていちょっていうとUTF-32?



442 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 12:08:17 ]
合成文字の扱いを考えると固定長にはならない。

443 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 12:31:59 ]
ようはこれがしたい。

char str[]="あいうabc";
for(int i=0; i<strlen(str); i++)
printf("%c\n",str[i]);

で、




a
b
c

が出て欲しい。wchar_t(+UTF-16)に望んだ事はこれだったんだがなぁ。。。
変換とかオーバーヘッドを伴う処理や、そういう処理を含んだ文字列操作クラスは使いたくない。

444 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 12:49:14 ]
>>444
それは、本質的に無理だったってことなんだろう。
合成文字がある限り、1つの文字を表わすのに複数のコードポイントが必
要なのはUTF-32にしたって変わらない。



445 名前:デフォルトの名無しさん [2009/07/10(金) 12:55:38 ]
>>445

446 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 13:18:32 ]
>>443
配列の操作はポインタ演算なんだから固定長以外無理だろ。
可変長の操作をポインタ風にするにはクラスで隠蔽するしかねーじゃん。
C/C++に対して、何を寝とぼけたこと言ってるんだ。


447 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 13:20:26 ]
それは流石に的外れw

448 名前:デフォルトの名無しさん [2009/07/10(金) 13:55:30 ]
>>443
JISコードでも使っとけ

449 名前:デフォルトの名無しさん [2009/07/10(金) 13:57:43 ]
>>443
>>446 の云う通りだ
「文字」クラスを作って
配列はそのクラスのインスタンスへのポインタを並べたものにする
どうだ最強だろ


450 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 14:21:05 ]
激しくスレチかも知れませんが、もしそうだとしたら誘導してください。
smakeってどうやってビルドすればいいのでしょう?
Cygwinには入っているらしいのですが当方MinGWを使っているので・・・
当方の環境:
WinXP SP2
gcc v3.4.5

451 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 20:13:58 ]
>>450
何がわからんのか書いてくれ。
make 一発でビルドできて躓くポイントなんぞ無いぞ。
と、いうか Readme 読め。



452 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 22:51:55 ]
>>451
そのReadmeがついてないという…

453 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 07:37:12 ]
>>452

smakeだったら README.compileってファイルがあると思うが

他にもlinux系ツールだと INSTALLってファイルにビルド方法が
書かれていることが多い


454 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 12:12:14 ]
>>453
thx!

455 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 20:06:33 ]
WinXP SP2
gcc v3.4.5


456 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 22:16:12 ]
MinGWのインストーラーって無くなりました?
幾つかの参考サイトはインストーラーが前提になってて
インストールしたいのですけど配布サイトに無くてお手上げ状態です。


457 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 22:25:06 ]
>>456
俺は公式のMinGWが面倒なのでTDM-MinGW使ってる

www.tdragon.net/recentgcc/

これならインストーラもある

458 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 23:52:15 ]
>>456
lzma で配布されてるデカいアーカイブがひとつあるだろ。
GCC 4.4.0 を使うのに必要なものはそれに全部入ってる。

459 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 03:49:58 ]
456では無いけど、そのlzmaファイル、今は無いみたいだ
>The "/GCC Version 4/Current Release_ gcc-4.4.0/gcc-full-4.4.0-mingw32-bin-2.tar.lzma" file could not be found or is not available.
>Please select another file.

・・・他のファイルも落とせないし、sf.netがリニューアルしてから調子悪いのか

460 名前:456 mailto:sage [2009/07/23(木) 10:40:20 ]
質問した本人です。
こんな早く返事が帰ってくるとは思っていませんでした。反応遅くて申し訳ないです。
とりあえず>>457を使ってみようと思います。
お返事ありがとうございました。

461 名前:456 mailto:sage [2009/07/23(木) 10:45:02 ]
>>457を使おうと思ったら>>459と同じ内容が出てきましたorz




462 名前:デフォルトの名無しさん [2009/07/23(木) 11:12:02 ]
keihanna.dl.sourceforge.jp/mingw/40734/gcc-full-4.4.0-mingw32-bin-2.tar.lzma

463 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 11:15:45 ]
うげ、やっちまった。直リンになっちまった。ごめんなさい>keihanna

464 名前:456 mailto:sage [2009/07/23(木) 12:19:17 ]
今配布サイトに繋げたらインストーラーが追加されてました。
昨日はなんで無かったんでしょうね…。
ともかく使ってみます。
ありがとうございました。

465 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 16:59:19 ]
www.computerworld.jp/topics/ms/156530.html

466 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 00:43:46 ]
なんか公式のダウンロードページここ最近いろいろ変更されてるね

467 名前:デフォルトの名無しさん [2009/07/27(月) 00:48:58 ]
Cygwin+GCC4(非MinGW)で
UTF-16BEのテキストファイルをmmapし、
それをwchar_t型の配列にキャストした場合
wprintf()で出力される文字は、UTF-16BEなのでしょうか?

wchar_tやwprintf()で出力される文字コードは環境依存と聞いた事があるので
Cygwinではどうなっているのかわからないのです。

ちなみに、試しに出力してみましたが、画面表示のロケーションをUTF-16BEにしてるにも関わらず文字化けします。
こちらの設定ミスなのか、仕様なのかがわからないので・・・

468 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 01:00:06 ]
>>467
Cygwinのバージョンは?
1.7ならLANGをちゃんと設定しておけばいけるはず。
1.5ならwcharは壊れてるので事実上使用不可なんじゃなかったっけ。

469 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 09:01:50 ]
Cygwinのwchar_tはUTF-16LEじゃないかい?


470 名前:デフォルトの名無しさん [2009/07/27(月) 11:09:59 ]
swab関数でバイトオーダーを入れ替えちまえ

471 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 20:23:50 ]
gcc-full-4.4.0-mingw32-bin-2.tar.lzmaをダウンロードして解凍しました。
で、以下のソースを msys上でコンパイルしたら、すごい量のエラーが吐かれました。なんか文字化けてるし、全然意味わかりません。
助けて下さい。

----------------------------------------------
#include <iostream>
using namespace std;
int main()
{
cout << "Hello" << endl;
return 0;
}
----------------------------------------------
----------------------------------------------
$ g++ hello.cpp
c:\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/bits/postypes.h:42 、ォ、・includ
e 、オ、・ソ・ユ・。・、・・,
c:\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/iosfwd:42 、ォ、
,
c:\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/ios:39 、ォ、,
c:\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/ostream:40 、ォ
、,
c:\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/iostream:40 、
ォ、,
hello.cpp:1 、ォ、:
c:\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/cwchar:47:19: error: wchar.h:
No such file or directory
(以下続く)
----------------------------------------------





472 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 20:33:23 ]
>>471
win32api 関連とかは別のファイルになってる。
ちゃんと説明読め!
sourceforge.net/project/shownotes.php?release_id=691876

473 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 20:46:43 ]
>>472

すいません。読んでませんでした。
ちゃんと別のファイル落して、くわえたら動きました。

ありがとうございました。

474 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 20:48:35 ]
あとエラーメッセージとかの日本語は euc になってる。
ターミナル側を euc に設定できるならそうしたらいいけど、
sjis 版のカタログファイルを用意してやったぞ。
www.42ch.net/UploaderSmall/source/1249645520.mo
をダウンロードして
/mingw/share/locale/ja/LC_MESSAGES/gcc.mo
をおきかえろ。

475 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 20:56:29 ]
>> 474

ぉお〜 !!ありがとうございます。

476 名前:デフォルトの名無しさん [2009/08/10(月) 22:26:06 ]
cygwin でシェルスクリプトを実行しようとすると
cannot execute binary file
というエラーが出てしまいます。
どうしたらいいんでしょう?

477 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 22:48:18 ]
シェルは何を使ってんの?

478 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 23:19:07 ]
>>476
a)Unicode(UTF-16)で保存している
b)BOM付きUTF-8(メモ帳のUTF-8で保存するとコレ)で保存している
のどっちかじゃね?
TeraPadあたりでUTF-8N保存してみたら?

479 名前:デフォルトの名無しさん [2009/08/11(火) 14:03:25 ]
387 名前:名無しさん@お腹いっぱい。[] 投稿日:2009/08/10(月) 08:03:10
シェルスクリプトを実行すると
./test.sh : cannnot execute binary file
なるエラーが出てしまいます。
何が悪いんでしょう。
スクリプトは下なのですが

#!/bin/bash
cat data.txt

480 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 14:07:12 ]
MinGWでgcc 4.4.0を入れたんだが、
gcc -vをすると文字化けするとこあるんだが、なんでだろ?
helloworldで日本語入れて表示させても文字化けしないんだが。

C:\Users\Username>gcc -v
Using built-in specs.
Target: mingw32
・ウ・・ユ・」・ー・ェ・ラ・キ・・: ../gcc-4.4.0/configure --enable-languages=c,ada,c++,fortran,java,objc,obj-c++ --d
isable-sjlj-exceptions --enable-shared --enable-libgcj --enable-libgomp --with-dwarf2 --disable-win3
2-registry --enable-libstdcxx-debug --enable-version-specific-runtime-libs --prefix=/mingw --with-gm
p=/mingw/src/gmp/root --with-mpfr=/mingw/src/mpfr/root --build=mingw32
・ケ・・テ・ノ・・ヌ・: win32
gcc version 4.4.0 (GCC)

481 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 14:14:21 ]
>>480
>>474



482 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 14:16:05 ]
上側の化けてるところは「コンフィグオプション」で、下側は「スレッドモデル」だな

483 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 14:20:11 ]
>>480
ソースコード中に日本語を使うなら -finput-charset や -fexec-charset オプションでエンコーディング指定するのを忘れないように。

484 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 14:22:08 ]
-finput-charset=cp932 -fexec-charset=cp932

これか

485 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 14:23:47 ]
>>481-483

即レスthx!
もっと勉強させてもらいます><

486 名前:480 mailto:sage [2009/08/11(火) 14:51:33 ]
>>474でDLしたファイルをgcc.moにリネームして置き換えたら、文字化け無くなった。

C:\Users\Username>gcc -v
Using built-in specs.
Target: mingw32
RtBOIvV: ../gcc-4.4.0/configure --enable-languages=c,ada,c++,fortran,java,objc,obj-c++ --disable-sjl
j-exceptions --enable-shared --enable-libgcj --enable-libgomp --with-dwarf2 --disable-win32-registry
--enable-libstdcxx-debug --enable-version-specific-runtime-libs --prefix=/mingw --with-gmp=/mingw/s
rc/gmp/root --with-mpfr=/mingw/src/mpfr/root --build=mingw32
Xbhf: win32
gcc version 4.4.0 (GCC)

>>482が言ってくれたみたいに、
「RtBOIvV」のところって、gcc3.4.5のときだと「Configured with」って表示されてたような。
「Xbhf」のところは、gcc3.4.5のときだと「Thread model」って表示されてたような。
この文字列に意味あるのかな?

487 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 14:56:00 ]
>>486
いやいや、それ化けてますから!
ちゃんと適用されていればまさに >>482 の通り表示するはずなんだ。

488 名前:480 mailto:sage [2009/08/11(火) 17:11:32 ]
>>487
レスthx!

今は、情報収集でググったりしてるところであります。

とりあえず現状は、
(1)コマンドプロンプトの文字コードはCP932。
(2)gcc -vで日本語と思われるところが文字化け。
(3)日本語を含む文章(ファイルの文字コードはSJIS)をprintfで表示させたら文字化けはしない。
(4)gcc3.4.5を入れたら、\shareにlocaleフォルダが無かった(多言語対応してないのかな?)

もしかして、gcc4.4.0の導入方法がダメなのかな?
公式ページからMinGW5.1.4.exeをインストールしたら、gccは3.4.5になってた(とりあえず、C:\MinGWを作成)。
で、公式ページからgcc-full-4.4.0-mingw32-bin-2.tar.lzmaをダウンロードして、
解凍したできたフォルダ達を\MinGWで上書きした。
この方法がそもそもダメとか?

489 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 10:07:37 ]
MinGW 5.1.4のg++で std::wstring がコンパイルは通るんだが,リンカーエラーになる。(IDEとしてCode::Blocks使用,ソースはBOMなし
UTF-8で書いてる)。環境変数関係の設定はもちろんOKのはず。

#include <windows.h>
#include <string>
using namespace std;

int main()
{
wstring wstr(L"はろー"); //ここと
::MessageBoxW(NULL, wstr.c_str(), L"タイトル", MB_OK); //ここをコメントアウトして
// ::MessageBoxW(NULL, L"はろー", L"タイトル", MB_OK); //ここのコメントを外すとOK
return 0;
}
このプログラムをビルドするとリンカーが,
C:\Documents\Software\CodeBlocks\unitest\main.cpp|9|undefined reference to `std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::basic_string(wchar_t const*, std::allocator<wchar_t> const&)'|
というエラーを吐く。wstringをやめてstringを使い,ソースをSJISにして::MessageBoxAで表示させると問題ない(L”なんたら”のLは外す)。
ヘッダーファイルをgrepで検索したら,

#if defined (_GLIBCXX_USE_WCHAR_T) || defined (_GLIBCXX_USE_WSTRING)

template<> struct char_traits<wchar_t>;

typedef basic_string<wchar_t> wstring;
#endif

#endif

と書いてあったので,念のため _GLIBCXX_USE_WCHAR_T と _GLIBCXX_USE_WSTRING を定義してみたけど
やっぱりダメ(リンカーエラーだから関係なさそうだけど)。何かライブラリが足りないのかな?

490 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 14:53:22 ]
> 念のため _GLIBCXX_USE_WCHAR_T と _GLIBCXX_USE_WSTRING を定義してみたけど

それが定義された状態で libstdc++.a がビルドされてないとダメなんじゃないか?

491 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 00:29:28 ]
>>490

> それが定義された状態で libstdc++.a がビルドされてないとダメなんじゃないか?

レスサンクス。
それって、_GLIBCXX_USE_WCHAR_T と _GLIBCXX_USE_WSTRING を定義した上で
libstdc++.a をビルドしろって意味? バイナリ拾ってきてインストールしたんで(ダウンロード
してインストールする方式だったけど)、ソースからビルドするにはどうすればいい?
教えて君でスマン。



492 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 00:58:58 ]
libstdc++.a は gcc のソースに一緒に入ってるんじゃないかなぁ。

493 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 01:25:36 ]
>>491
gccをビルドするときのconfigureオプションじゃないかと調べずに言ってみる。

494 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 02:13:24 ]
>>491
libstdc++.aは
C:\MinGW\lib\gcc\mingw32\4.4.0にあるよ

495 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 02:42:21 ]
>>494
バイナリがどこにあるなんてことじゃなくてビルド方法の話だろ。


496 名前:491 mailto:sage [2009/08/14(金) 07:10:01 ]
>>495
> バイナリがどこにあるなんてことじゃなくてビルド方法の話だろ。

その通りです。既存の libstdc++.a をリンクしてのテストはもちろんやってて、
それでうまく行かないのです。

うーん。バイナリダウンロードしてきて、そのままインストーラー任せでやったから、
こういうとき困るね。Code::Blocks使うので、MSYSすらインストールしてない。
もう少し調べてみます。

497 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 23:08:29 ]
こんな記事があった。
www.mingw.org/category/wiki/libstdc

498 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 23:15:00 ]
もう stlport 使えよ

499 名前:491 mailto:sage [2009/08/15(土) 00:10:44 ]
>>497
あちゃぁ、がっくし... 比較的最近の記事だし、そういうことなのかぁ。

>>498
そういうことですかね。検討します。

皆さんアリガト。

500 名前:デフォルトの名無しさん [2009/08/28(金) 21:38:57 ]
cygwinでshlwapi(SHell Light Weight API)使うにはどうすんの?
ソースに#include <shlwapi.h>書いて
ldに-lshlwapi食わせてもなぜか失敗する

501 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 22:52:03 ]
どう失敗するのか書けよ。
ライブラリがないのか? 実行時エラーか? エラーメッセージは?



502 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 22:53:54 ]
gccだとVC/C++用のライブラリは使えなかったりするから、
shlwapiのライブラリをgccでコンパイルする必要があるのかもね。

503 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 23:07:54 ]
普通にインストールしてればインポートライブラリは入ってるよ。






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

前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