Cygwin + MinGW + GCC 相談室 Part 8

1デフォルトの名無しさん
垢版 |
2014/09/23(火) 00:20:11.40ID:G97CLCj1
Windows上で動作するフリーの開発環境 CygwinとMinGWに関する相談スレッドです。

過去スレ:
Cygwin + MinGW + GCC 相談室 Part 7
http://peace.2ch.net/test/read.cgi/tech/1357019230/
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/

関連サイト:
Cygwin http://www.cygwin.com/
MinGW http://www.mingw.org/

関連スレッド:
GCCについて part10
http://toro.2ch.net/test/read.cgi/tech/1315026784/
2019/03/18(月) 17:10:19.96ID:yKiI4G/I
C11はこのあとC2aとか出るのかねえ
2019/03/19(火) 22:39:22.82ID:5qst9NFY
>>473
わたしはぜひそれをしたいと思っていますがBasic Setupのツリーからその項目を見つけることができません
どこにあるのでしょう><
2019/03/19(火) 22:54:37.22ID:5qst9NFY
>>473
あ、もしかしてそれってターミナルでコンパイルするときに
gcc -std=11 hoge.cとやれということでしょか?だとしたら死にたい…
2019/03/23(土) 17:33:03.74ID:ByL/s3eU
MSYS2 環境 (32bit) で Guile を実行するとライブラリのプリコンパイルが
始まってなかなか終わらないし、終わってから再度実行するとまた最初
から始まってしまう。
パス変換の考慮ミスで既にあるプリコンパイル済みライブラリを見つけらない (?) っぽい
報告もあるんだけど、これってどうにもならない?
478デフォルトの名無しさん
垢版 |
2019/03/23(土) 18:17:20.21ID:iMO+WCpL
ダミーで ./c/hoge -> /c/hoge みたいなリンク作って path に追加したら?
2019/04/10(水) 07:27:34.52ID:qyNiIlQC
Windows 8.1 64bit 上で

>set | findstr PATH > c:\tmp\PATH.txt
>set | findstr Path > c:\tmp\Path.txt

したらファイル1つしか残らなかっただ…。
LFN でも大文字小文字区別せんのか…
Windows10 だと違うのか
2019/04/10(水) 07:35:50.12ID:qyNiIlQC
chcp 65001

するのって常識???
481デフォルトの名無しさん
垢版 |
2019/04/10(水) 10:38:27.98ID:g9h2j5fz
chcp 65001 はバグだらけだから今はしないのが常識
2019/04/10(水) 11:57:36.05ID:ctVOU6iK
>>479
grep -ir "abc" ./*

grep でも使えば?

i は、大文字小文字を区別しない。
r は、ディレクトリを再帰的にたどる
2019/04/12(金) 02:01:09.38ID:K5RuTlhq
test
2019/04/12(金) 02:02:22.10ID:K5RuTlhq
cp932でgcc-8.2.0がコンソールを深紅に染めない環境はありますか
2019/04/12(金) 02:03:18.43ID:K5RuTlhq
findstr /I
で case insensitive 処理が出来るようですね
2019/04/12(金) 02:03:48.55ID:K5RuTlhq
いずれも環境はWindows8.1 64bitです
2019/04/17(水) 09:23:22.24ID:LMpL5fl6
mingw-w64-x86_64- が頭についてるGUIソフトってXなしで動くのですか?

また、これが頭についていないパッケージってなんのために存在するのですか?
2019/04/17(水) 09:52:22.56ID:vaxiFaLk
名前はなんでもいいが、mingwをつかって直接windows api呼んでりゃXなしでうごく。あとQtとか使ってるのもあるじゃろう。
公式のパッケージは全部同じ命名なんじゃないか?なんか管理用のファイルとか?
2019/04/17(水) 10:10:51.07ID:RU1ct6Mv
qt-5.12.2ならMinGWのgcc-7.3.0を入れられる
g++ & qtで書ける
2019/04/17(水) 10:14:46.50ID:RU1ct6Mv
<私見>
qt charts ブチ込んでも、qt-5.12.2なら問題はリバースエンジニアリング関連にとどまる
なぜなら、qt chartsをインストール対象としてチェックしたうえでインストーラを進めても、
ライセンスとしてLGPLが選択可能で、GPLv3が要求する "displays an appropriate copyright notice" を満たさずGPLv3の適用を主張できないから
</私見>

正確なところは弁理士または弁護士に確認されたし
IPAの逐条訳が参考になるかも
2019/04/17(水) 10:35:09.65ID:4gj66k19
>>488
例えばEmacsは両方あります
2019/04/17(水) 21:22:11.34ID:9Q2ukeRT
msys用でしょ
2019/04/18(木) 17:45:20.57ID:T5E1BM4x
>>488
最初は意味が分からなかったんだけど、unix(っていうかLinux系かな)と同じGUIツールは
X11なしでも動くのなんでかなって話かな
これは>>488が書いているようにGUIの表示にX11を使っていなくてWindowsで表示可能な
GUIシステム(例えばmingw用のQtとか)で組まれているならば当然X11は必要ない
逆にX11ベースのxtermコマンド(あるならば)はX11サーバがないと表示できない

「mingw-w64-x86_64-」っていうのはマルチプラットフォーム/マルチアーキテクチャに
対応しているアプリケーションでプラットフォームやアーキテクチャをを表している
例えば「gcc」は「mingw」や「linux」といった複数のプラットフォームで「x86」や「arm」など
複数のアーキテクチャに対応している
なのでこの「gcc」は「64bit Windows」の「mingw」で「x86」系のCPUで動く「64bit」CPUで
動くよって意味で「mingw-w64-x86_64-」という接頭語みたいなのが付けられている

ただし接頭語が付いたままだと使うときにユーザーが一々プラットフォームとアーキ
テクチャを意識しなければならないし、configureみたいにその辺を自分で解決できる
スクリプトとかアプリケーションでないと一般的なコマンドとして使用出来ないので接頭語
なしのコマンドが用意されている

Linuxの場合には複数バイナリを用意するのは無駄なので接頭語つきのコマンドに
シンボリックリンクされた接頭語なしコマンド名が作られているけど「MSYS」みたいな
Windows上で動作する環境の場合シンボリックリンクに対応していないので同じバイナリが
2つあるような感じで実装されてたりするって感じかな
494デフォルトの名無しさん
垢版 |
2019/04/19(金) 16:30:35.71ID:kPHA0zLK
>>493
違います
2019/04/19(金) 17:02:11.09ID:dBiDFHmq
emacsはX Window System必須ではなかったような気もするし今は違うのかも知れないし何とも
2019/04/19(金) 17:21:27.71ID:jGjLpvIL
windowsではcygwinのやつ使っとるよ。
msys2/mingwはいまいち信用できん。
なんにせよXは不要だよ
2019/04/19(金) 20:44:01.33ID:Cry1IFM3
cygwinのはXlibリンクしてるんじゃない?
2019/04/22(月) 22:01:05.02ID:dWmpunjw
>>497
嘘はよくない
2019/04/23(火) 00:42:18.05ID:YVNM1Id6
emacs-X11とemacs-w32があるから嘘でもない
2019/04/23(火) 01:02:36.94ID:mPLR84qw
まだastec-xとか売ってるんですね
2019/05/02(木) 21:24:20.65ID:qbL1jEY8
valgrind みたいにアクセス違反検出する仕組で msys2 上で使えるものってあります?
2019/05/08(水) 17:58:41.57ID:jUoRAJVn
>>501
ないですね
503デフォルトの名無しさん
垢版 |
2019/05/21(火) 22:53:35.55ID:5dr0Nkwr
>>501
ありますよ
2019/05/22(水) 01:15:47.82ID:zrih+ccQ
Windows 上で g++ & qt ってどのくらいメジャーなのかな

とりあえず「オレオレコード」書くなら C++11 とかかいな
GCの仕組みとか全く知らんけど
「適切なC++11の教科書などない!」という話もあるけど

Python 使え?
505デフォルトの名無しさん
垢版 |
2019/05/22(水) 11:00:03.94ID:1OSMRbFi
C++11 なんてオワコンだからやめとけ
2019/05/22(水) 17:17:32.49ID:qHBIaGAD
>>504
話もあるけどね
2019/06/03(月) 06:28:27.40ID:+7d3cfJz
ふう😎
508デフォルトの名無しさん
垢版 |
2019/06/13(木) 16:59:54.42ID:/0Hvd4dT
cygwin に apt-cyg find R したら Rがあった(長らくこれはなかった)
感動的だ

ようやくWindowsの上でもスタート地点に立った
2019/06/13(木) 19:08:21.05ID:t/TgILxI
いまから C++ (and qt) をゼロから習得するなら
基本的には C++17 レベル???

https://cpprefjp.github.io/implementation-status.html みたかんじ
殆ど実装されてるっぽい???
2019/06/13(木) 22:37:36.09ID:tYlssfYj
ものすごい今さらな質問なんだが・・・
Cygwin て何て発音するんだ?サイウイン?
まわりに使ってるやつ1人もいないから実際に発音することがなくて困る
2019/06/13(木) 22:43:02.73ID:C6mR/1ai
>>510
ttps://ja.wikipedia.org/wiki/Cygwin
2019/06/13(木) 23:07:55.81ID:rmSOkmKf
まじかよ・・人前で発音してなくてよかった
2019/06/14(金) 00:04:54.99ID:7DXJVUad
cygnusはキグナスだった?
mingwがむしろ困るよな
2019/06/14(金) 11:01:55.94ID:YE54Q2cv
みんじーだぶる
2019/06/14(金) 11:06:24.98ID:LY52/qBF
みんぐうじゃないのか
2019/06/14(金) 12:20:34.75ID:5t0rLbyA
cygnusは英語では、「シグナス」です。

むかし、Cygnusと云う商標で、「キグナス石油」という会社が
あったので、Cygnusを英語読みで[シグナス」ということを
知らないで、、「キグナス」と読んだりするみたいです。

ちょっと、きになったら、『英和辞典」を引いてみるとよいでしょう。
2019/06/14(金) 12:26:57.67ID:YE54Q2cv
ジョアンとフアンとジョンとジャンと…

カルロスとチャールズとシャルルと…

ジョージとホルヘとゲオルクと…
2019/06/14(金) 12:28:33.37ID:7fHAKBFE
>>516
英語しかできないってこと?
519デフォルトの名無しさん
垢版 |
2019/06/14(金) 12:47:10.03ID:bpAwmG5b
ペーターピーターピョートル
シーメンスジーメンス
ジャーマンゲルマンドイツドイチュ
2019/06/14(金) 19:09:25.40ID:YE54Q2cv
英語読みにこだわるなら
Linux は「らいなくす」か
2019/06/14(金) 23:28:44.92ID:5t0rLbyA
フランス語は
cygne
で、cygnusとは違います。
ラテン語は、英語と同じ
cygnus
です。
2019/06/15(土) 00:44:39.57ID:Dx2Qxwyp
>>516
https://ja.forvo.com/word/cygnus/#la

こうか
523デフォルトの名無しさん
垢版 |
2019/06/15(土) 11:12:22.87ID:Z5/LYv7k
Cognac
Tough
Lamborghini
を思い出す
2019/06/20(木) 22:49:09.67ID:saP3r1IF
クンタッシ
525デフォルトの名無しさん
垢版 |
2019/06/22(土) 19:12:03.45ID:UYyu+IU/
>>523
ぶぁーか
526デフォルトの名無しさん
垢版 |
2019/06/23(日) 05:49:44.99ID:g5igmDJr
MinGW更新が滞っています
2019/06/24(月) 05:27:39.62ID:bdPLxrDs
>>526
MinGW-W64 project のやつは滞ってるけど、
MSYS2 project のやつ(pacmanで入れるやつ)は滞ってないよ(9.1.0)。
2019/06/24(月) 12:32:30.26ID:INmKbVms
msys2もWSL2で役目終了かな
2019/06/24(月) 16:47:30.43ID:Qf6r6oPW
そして焼け野原
530デフォルトの名無しさん
垢版 |
2019/06/25(火) 20:17:15.80ID:Cgc4J/db
>>529
一言余計なんだよカス
2019/06/25(火) 20:43:23.33ID:mNuvBnC/
効いてるw
2019/06/25(火) 21:35:27.64ID:0CG+TeYQ
https://gcc-mcf.lhmouse.com/?C=M&;O=D

ここちゃんとチェックしてるか?9.1.1まで出てるぞ
2019/06/26(水) 01:21:30.62ID:uaiF8BI0
>>532
普通チェックしないし使わない
2019/07/02(火) 16:03:24.73ID:+WA62fsw
>>533
効いてるw
2019/08/05(月) 11:53:08.29ID:r6BvniMN
clang で良いんじゃないの? Google もGCC からclang に切り替えたし。
2019/08/13(火) 11:23:23.39ID:5isOnGEb
gcc-9.2
2019/08/14(水) 15:59:31.43ID:cSlSK8mm
> warning: hoge.hpp.gch/fuga.gch: had text segment at different address
9.2でこんなエラーが出るようになってPCHが効かない。ビルド時間が3倍に。
> cc1plus.exe: warning: '-Werror=' argument '-Werror=hoge-fuga' is not valid for C++
あとこんな警告が大量に出るようになって邪魔。
2019/08/20(火) 15:18:40.97ID:4DZMx7ke
MinGWで作ったバイナリ、コマンドプロンプトで実行するとすごい遅い
一回実行するとキャッシュでもされるのかそれ以降の実行はわりと速い
ひどいときはプロセス間通信を使ってるバイナリで実行から終了まで7秒とかかかったりする

Gitとかはコマンドプロンプトで実行してもすぐに実行されるんだけど、何が違うんだろう
ウィルスソフトのリアルタイムスキャンに時間がかかってるのかと思って、問題のバイナリの除外設定とかしてみたけど、効果なかった

問題のバイナリはプロセス間通信を使ってるから、このプロセス間通信がボトルネックになってるのかなぁ
WindowsのCreateProcessはLinuxのforkに比べるとめちゃくちゃ遅いらしいし
539デフォルトの名無しさん
垢版 |
2019/08/20(火) 15:20:15.93ID:zlJnj2O9
cmd からじゃなくて mintty から実行しても遅いか?
2019/08/20(火) 15:35:04.29ID:4DZMx7ke
>>539
試してないけど試してみます
2019/08/20(火) 15:50:21.30ID:KG2FXNu0
mkpasswdとかmkgroupとかやっとかないとあかんのじゃなかったっけ
2019/08/20(火) 17:27:25.95ID:4DZMx7ke
>>539
mintty, MSYSでは動作が速かったです
cmd特有の「初回起動だけ遅い」というのはありませんでした
powershellでも試してみます

>>541
cmdでも実行は出来てるんですが、なんか初回実行だけ遅いんです
初回以降は速くて、しばらく放置してまた実行すると遅くなってます
543デフォルトの名無しさん
垢版 |
2019/08/20(火) 17:37:17.04ID:zlJnj2O9
キャッシュしてるとしたら socks の dll かな
2019/08/20(火) 17:51:30.05ID:ITb7FkqQ
ログ吐かせてどこにネックがあるのかみてみないと
2019/08/21(水) 17:19:04.83ID:iGK2Kp/R
雑な事いえばminttyやMSYSを起動すると、起動した時点でMinGWのdllが
読み込まれるのでコマンド起動遅くならないのでは
546デフォルトの名無しさん
垢版 |
2019/08/21(水) 17:33:03.25ID:ur92HW83
それならそれで解決とするか
2019/08/21(水) 23:34:12.77ID:L4bPYRCx
dllの読み込みに時間かかってるってことですか
なるほど
ということはMinGWでコンパイルしたバイナリ全般に現れる問題っぽいですね
2019/08/22(木) 04:38:34.97ID:Rc8J28Ob
コマンドプロンプトで実行するようなプログラムは
Windowsネイティブアプリにしろよw
2019/08/22(木) 05:37:28.68ID:rzNCVH2V
MinGWで作ったら余程変態技を使わない限りWindowsネイティブアプリ
2019/08/22(木) 06:10:29.02ID:dqAPG5D5
>>548
最初はLinuxで開発してて、それからWindows用に移植したんですよ
で、MinGWが手軽だったからMinGW使ってたんだけど
551デフォルトの名無しさん
垢版 |
2019/08/22(木) 10:15:45.06ID:xQsiKIbM
そんな用途には tdmgcc64 おすすめ
2019/08/23(金) 03:35:27.20ID:jZ19Qjup
ググっても一件しか出なかった
gccなのはわかる
553デフォルトの名無しさん
垢版 |
2019/08/23(金) 15:09:01.75ID:Zx6EO+xk
これやろ
https://ja.wikipedia.org/wiki/TDM-GCC
http://tdm-gcc.tdragon.net/download
2019/08/23(金) 18:17:23.56ID:jZ19Qjup
>>553
おお、ありがとう
ダウンロードしてみる
555デフォルトの名無しさん
垢版 |
2019/08/23(金) 18:24:15.33ID:aZS2aOxa
今はこっちが良くね
https://text.baldanders.info/remark/2018/03/mingw-w64/
2019/08/24(土) 06:55:34.51ID:Glqz8i+r
TDM-GCCでビルドしたら遅いの無くなったかもしれない(*´Д`)!!!
>>551
>>553
もう少し様子見るけど、まじでありがとう

>>555
これはMinGWとは違うの?
557デフォルトの名無しさん
垢版 |
2019/08/24(土) 09:36:31.35ID:u2q8uNB0
staticになってるだけというオチだったらわろす
2019/08/24(土) 14:59:08.43ID:H4K4vAej
ただ単に -static -O3 -mtune=skylake を指定していないだけ
じゃねえだろうな?
2019/08/24(土) 17:29:38.98ID:Glqz8i+r
staticオプションは特に指定しませんが……
dllの読み込みが原因だとしたらstaticにすれば解決という話ですか
そういう発想はなかった

>>558
--mtune=skylakeってなんですか?
560デフォルトの名無しさん
垢版 |
2019/08/24(土) 17:48:35.57ID:u2q8uNB0
DLLよりstaticが速いとか都市伝説
2019/08/25(日) 16:54:37.16ID:z6AAmiat
>>559
-O3はコードの最適化を3レベル(あるいはタイプ3)で行う
実際に何を行っているかはコンパイランの説明を読まないと分からない
-mtune=skylakeはコードをIntel CPUのSkyLakeアーキテクチャで最適な形にする
どちらも記述したコードを実行形式にするときに最適化を行うオプションなので、
非常に大きなコードを書いた際や似たような処理を繰り返すコードを書いている際に
指定すると早くなる事もある(ライブラリに含まれるコードは最適化されない)

>>560
都市伝説ってこともない

関数A、B、C、Dが含まれるライブラリlibhogeが存在する場合、自分のプログラムで
関数BとDだけを使っていると、ダイナミックリンクの場合自分のプログラムの実行
コードに加えてすべての関数が含まれるlibhoge.dll全体を読み込む必要がある
スタックリンクの場合には自分のプログラムの実行コードに加えてlibhoge.aから抽出した
関数BとDのコードを読み込むだけなので関数AとCのコードを読み込まない分ロードが
早くなる可能性は高くなる

ただし、実際問題としてはdllを一回読み込めばキャッシュからなくならない限り読み込む
必要がない+Windowsのプログラミングで使用するライブラリで基本的なものは通常
システムを起動した時点でキャッシュされていることに加えて、Windowsでプログラムを
動かすために必要な関数郡はかなりの量になる事が多いのでスタティックにリンクすると
すでにキャッシュされている関数郡を使わずに、必要な関数郡を含んだ大きなコードを
読み込む必要があるのでスタティックリンクの方が起動が遅くなるって本末転倒な事態が
発生することもある

MinGWの場合にはWindows一般では使わないライブラリを使用するので1回目の
起動時には必要なdllを読み込むよりは、必要な関数のみをリンクしたスタティックな
状態の方が早い場合があるかもってこと
2019/08/25(日) 19:02:38.36ID:7s5pz20M
もっと短く
2019/08/25(日) 23:51:01.48ID:V1f8d4H1
>>561
ということは--static -O3 -mtune=skylakeでビルドすれば起動が早くなるかもということですか
時間があるときに試したいと思いますm(_ _)m
2019/08/26(月) 01:28:47.93ID:K2zp8I6+
やっぱり名前解決の問題が大きいんすよ
ライブラリの読み込みだけでは説明できない
565デフォルトの名無しさん
垢版 |
2019/08/26(月) 14:11:24.03ID:T0vtMl8v
>スタックリンクの場合には自分のプログラムの実行コードに加えてlibhoge.aから抽出した
>関数BとDのコードを読み込むだけなので関数AとCのコードを読み込まない分ロードが

これ関数単位でソース分けてあって
一関数が一objになってる場合だけだよな
566デフォルトの名無しさん
垢版 |
2019/08/26(月) 14:11:24.09ID:T0vtMl8v
>スタックリンクの場合には自分のプログラムの実行コードに加えてlibhoge.aから抽出した
>関数BとDのコードを読み込むだけなので関数AとCのコードを読み込まない分ロードが

これ関数単位でソース分けてあって
一関数が一objになってる場合だけだよな
2019/08/26(月) 17:43:39.53ID:eYWa871J
dll読み込みってそんなに重いかな?
なんか別のところで時間がかかっていそうな感じ。
2019/08/26(月) 21:44:29.54ID:CEMf0Y7L
>>565-566
MinGWの場合はそうかな。確かMinGWでは--gc-sectionsが効かなかったかと。
LTOで未使用関数が除去されるかもしれないけどバグが多いので試してない。
2019/08/27(火) 05:30:30.81ID:FSIINwco
>>563
でビルドしてみました
様子見します
-O3は、前にビルドしたときにプログラムがうまく動作しないことがあったんですよね
-O0にすると正常に動作したんですけど
570デフォルトの名無しさん
垢版 |
2019/08/27(火) 09:41:49.02ID:NZJyfwBK
-O3に完璧を求める方が可笑しい
2019/08/27(火) 11:08:45.95ID:NDEdv6OD
そこで-Ofastですよ
2019/08/27(火) 12:32:02.21ID:j4wzaSFP
-O3と-O0で挙動が違うのは、不定の値を使っているとか、
未規定の動作に依存しているとか、そういう系だぞ

まれにコンパイラのバグということもあるが大抵てめーが悪い
573デフォルトの名無しさん
垢版 |
2019/08/28(水) 17:10:08.53ID:w9RtsrXP
VCで造られたdllをmingwのgccで使いたいです
hoge.dll と hoge.lib は有るのですが
libhoge.a がありません
あと hoge.c とかのソースファイルもありません
hoge.def は hoge.dll から作れるのですが
hoge.lib から libhoge.a を作るのはどうすればよかったか思い出せません
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況