のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,683,045人
昨日:no data人
今日:
最近の注目
人気の最安値情報

元スレCygwin + MinGW + GCC 相談室 Part 7

gcc覧 / PC版 /
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter

1 = :

Windows上で動作するフリーの開発環境 CygwinとMinGWに関する相談スレッドです。

過去スレ:
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/

関連サイト:
Cygwinhttp://www.cygwin.com/
MinGWhttp://www.mingw.org/

関連スレッド:
GCCについて part10
http://toro.2ch.net/test/read.cgi/tech/1315026784/

2 = :

2 名前:デフォルトの名無しさん[sage] 投稿日:2011/05/06(金) 00:25:49.76
バイナリ配布サイト:
TDM's GCC/mingw32 Builds
http://www.tdragon.net/recentgcc/
Komisar Mingw
http://komisar.gin.by/mingw/
msys-cn - Project Hosting on Google Code
http://code.google.com/p/msys-cn/
MAME | Tools for building MAME on Windows
http://mamedev.org/tools/
MinGW Distro - nuwen.net
http://nuwen.net/mingw.html
mingw-w64
http://mingw-w64.sourceforge.net/
Cross-Mingw.GCC - x86/x64 - XvidVideo.RU
http://www.xvidvideo.ru/2009-10-22-10-49-14/cat_view/28-cross-mingwgcc-x86x64.html
猫科研究所(felid labo) - MinGW猫科研究所パック
http://up-cat.net/

3 = :

http://www.mingw.org/wiki/Linking_hangs_under_Windows_7

rare occasionsってのが嫌すね。
exFATやSMBだとどうなるんだろ?

5 = :

mingw の gcc で test.dll とインポートライブラリ libtest.a を次のように作った

g++ --shared -o test.dll test.cpp
pexports test.dll > test.def
dlltool --dllname test.dll --input-def test.def --output-lib libtest.a

それを実際にリンクさせようとしたところ、

g++ -Lライブラリのパス -ltest main.cpp

とやったら、リンクエラー undefined reference to・・・ が発生した。

libtest.a をカレントディレクトリにコピーしてきて

g++ main.cpp libtest.a

とやったら、ビルドできた。

ネット上で mingw の dll の使い方を調べてみると
前者の方法で良いみたいだけど、なぜかできない。
なんで?

6 = :

main.cpp と -ltest の順番を変えろ。
超 FAQ

7 = :

いろんな種類のgccが出て来てるね。解説キボンヌ。

8 = :

イボンヌです

9 = :

>>6
ありがと、まさにそれだった。

一応使う前に FAQ は見たんですけどね
http://archive.linux.or.jp/JF/JFdocs/archive/GCC-FAQ/

10 = :

>>8
つまり畑は違えど種は同じ、と

11 = :

http://www.sixnine.net/cygwin/translation/mingw-doc/mingwfaq.html

ここを見ると、mingw32-make は msys の make に比べて
機能が欠けていたり修正されていたりするそうだけど、
具体的にはどんな機能が書けていたり修正されてるの?

この辺りネットで調べてみても、誰も具体的には説明していないような気がする。

当然だけど、これでビルドされた exe ファイルに違いはないよね?

12 = :

うん

14 = :

GNUのサイトからmakeのソースを落としてそのままビルドしようとするとconfigureで

>case "$has_wait_nohang" in
> no) echo
> echo "WARNING: Your system has neither waitpid() nor wait3()."
> echo " Without one of these, signal handling is unreliable."
> echo " You should be aware that running GNU make with -j"
> echo " could result in erratic behavior."
> echo ;;
>esac

と言われる。
waitpid()はmsys-1.0.dllの中にあるので、MinGWのサイトにあるmsysを使うようにパッチされたソース
(make-3.81-3-msys-1.0.13-src.tar.lzma)を使ってビルドされたmakeならば-jオプションがちゃんと動くと思う

15 = :

今まで make って、Makefile に書かれたコマンドを単に実行するだけで、
そのコマンドが使うデフォルトのパスとかには一切関わらないと思ってたが、
話を聞いてるとどうも違うみたいだ

17 = :

>>15
ディフォルトメークルールで何でもあり。

18 = :

>>14
msysサポート如何にかかわらず make -j はよく刺さる。 ちゃんと動くバージョン希望。
むしろ今後のプロジェクトでは cmake+ninja にしろ。ちゃんと、しかも高速に並列動作する。
>>16
理解できていないものをことごとく馬具呼ばわりする蘭厨。

19 = :

>>7-8>>10
そういや32bit版はC++の例外絡みでdw2とsjljに分かれてますね。

20 = :

分かれてるね

21 = :

うん

22 = :

前スレのcommon lispのconfigureがmsysでコケちゃったの別解
msysやめて、cygwinでやってみた
$ CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ ./configure --enable-ansi --build=i686-w64-mingw32

(事前にcygwinにmingwなgmpいれとかないといけない。)

これで、configureは成功する。
しかし、makeでまだ、コケる。

24 = :

>>23
c++.exe と g++.exe のファイルのハッシュ値が一致するから同じものやね。

Linaxなんかだと、どちらかは片方のシンボリックリンクとかになってるんじゃないだろうか。

26 = :

そうなのか。
何のためにあるんだろ、歴史的な経緯とか、互換性のためかな。

今はどちらでも気にしないで使って良いんだね。
ありがと。

27 = :

互換性だろうな
ccコマンドと同じ事だろう

28 = :

>>24-25
トイレ?

30 = :

clangはもっと簡単に使えるようにしてよ
gccみたいに解凍して環境変数設定したら即使えるようにならない限り選択肢にならん

33 = :

cygwinの設定で環境変数を変数名HOME、値/home/usernameと設定したのですが、
HOMEという変数名はcygwinを使うためだけに設定しても大丈夫なのですか?
他のソフトでも環境変数のHOMEを設定するときに不都合があったりするのでしょうか。
大学の授業の延長で自宅のPCでも使えるようにしたので、環境変数とかについては無知です。
よろしくお願いします。

homeディレクトリをC:\cygwin\home\usernameにしておきたいのですが...

34 = :

たとえばバッチならバッチの冒頭でセットするとか

35 = :

ふーん

36 = :

>>33
bash側でHOMEを設定するなら、Windowsアプリには影響しないよ。

37 = :

>>36
ありがとうございます。
bashについては自分で調べておきます。

41 = :

パーミッションが0になってWindowsから書き込みできなくなりった

42 = :

>>1
新年明けましておめでとう。良い年であるといいね

43 = :

gcc で32/64bit syntax-only コンパイルを行いたいがスイッチによって定義済みマクロが切り替わらないです。
これって全部自分で再定義しないとだめなの? __SIZE_TYPE__ とか __PTRDIFF_TYPE__ とかその他もろもろ。
ILP32/LP64/LLP64とかを切り替えて syntax-only がしたいんだけどどうすれば?

44 = :

1. 上記に追加、というかこれが本題で clang で syntax-only をしたいのだが、 -m32/m64 に相当するスイッチも見当たらないしどうやって32/64bitの切り替えを行えばいい?

ちなみに 64bit 想定で size_t が uint64_t 相当になると <new> をインクルードしただけで operator new がエラーになる。
第一引数の size_t は uint32_t 想定である的なエラーになるんだが・・・。
これを解決して size_t が uint64_t でも syntax-check をパスできるようにしたいです。

45 = :

2. clang で Windows.hを syntax-only したときにデバッグビルドだと __STR2WSTRマクロで勝手にリテラル記号をつけられてしまうのだがclang がこれに対応していないのかリテラルとして処理できずにエラーになるんだが、どうする方法ない?
とりあえず現状 -U_DEBUG で非デバッグ版として回避してるけど、_DEBUG ありでちゃんと通るようにしたい

3. clang のオプションについての質問
-fms-version -fms-extensions を設定しているのに _MSC_VER や _MSC_EXTENSIONS が定義されない
これってどうなの?まだ未対応?

46 = :

-no include 系オプションがおかしい?
clang -fsyntax-only -x c++ -v /dev/null
とかで表示されるインクルード対象だが、オプション一覧にでてるのは
-nobuiltininc Disable builtin #include directories
-nostdinc++ Disable standard #include directories for the C++ standard library
-nostdsysteminc Disable standard system #include directories

デフォルトでインクルードされる対処を全て除外したいので
clang -fsyntax-only -x c++ -v -nostdinc /dev/null
とかにすると望みの結果になるのだが

47 = :

clang -cc1 -fsyntax-only -x c++ -v -nostdinc /dev/null
とするとダメ。
正確には -v つけてるうちはよいが外して、ビルドすると cc1 は -nostdinc ねぇよ、っていわれます。
-v -nostdinc で出力されたオプション列を真似して
-cc1 に渡す nobuiltininc/nostdinc++/nostdsysteminc を指定してもinclude対象ディレクトリを全ては除外できずnostdinc相当になりません。
これってどうすればいいんでしょうかね?

48 = :

http://sites.google.com/site/x32abi/
ILP32(x32abi)はウニックス系だけじゃね、つかえるのは
とういうか、windowsでx32apiのバイナリ動く(ある)のけ

mingw64は
i686-w64-mingw32
x86_64-w64-mingw64
で64bit/32bit環境を混在させないようにしてる

clangはこれからでしょ、まだ枯れてないような

49 = :

mingw初心者で解らんから聞くけど
i686-w64-mingw32 (i686, w64, mingw32)
x86_64-w64-mingw64 (x86_64, w64, mingw64)
の各部は何を意味するですか


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / gcc一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について