Cygwin + MinGW + GCC 相談室 Part 8at TECH
Cygwin + MinGW + GCC 相談室 Part 8 - 暇つぶし2ch994:デフォルトの名無しさん
25/08/22 17:08:27.47 3pyH/4Fj.net
Windows用Gitに、msys2由来のコマンド類が結構入ってるけど、
こっちはどれくらい使えるものなのだろう

コンパイラは無い、というのはいいとして、
grep、sed、awkとから辺は入っているから
とりあえずシェルスクリプトでちょっと何かをしたい、と
思った時とかは、Gitについてるコマンド類でも充分なのかな

正直、Windows用GitとCygwin+MinGWを導入していると、
gnu-utilsあたりのコマンドが両方入っているような感じで、
どっちかもう消したいんよね

gitはWindows用Gitの方が都合がよいのでこちらを残すかと
思ってるのだが、なー

995:デフォルトの名無しさん
25/08/23 21:23:36.16 ophcDa1q.net
>>989
Git for Winのmingw環境は、あくまでもgitのためのものだからな

bash、grepはじめ、UNIX的コマンドをより完全に使いたいのなら、
やはりCwgwin+MinGW+GCCかなと

ただ、Gitをメインに据えたいというのなら、
逆にGitのMinGWにgccとかを入れていくのがよいかなと
コマンドが足りなければその時にまた追加していく、で
それでgit環境がおかしくなったら、涙を拭いて頑張る、になるが

996:デフォルトの名無しさん
25/08/24 10:11:40.65 FHs64gUC.net
全部入りがいいならMSYS2でいい

997:デフォルトの名無しさん
25/08/24 21:06:59.10 JGmFRBjN.net
msys2で全部入り(随時追加)が良いよ
各ランタイムの開発環境(ucrt64,mingw64,clang64)の合計なんて30GBにも満たない
昨今の(mono)プロジェクト単位の依存関係インストールに比べたら軽いものでは

998:デフォルトの名無しさん
25/08/27 03:14:16.66 nJC8HQwX.net
windowsのパス環境変数取り合いになるからなあ
こういうの
統合してほしい

999:デフォルトの名無しさん
25/08/27 05:44:42.72 F9vl64W8.net
そう言う疑問はmsys2インストールして環境別のショートカットを見たら直ぐに分かる

1000:デフォルトの名無しさん
25/10/12 05:50:47.01 W2SaGlg4.net
>>992
でけーよ…

1001:デフォルトの名無しさん
25/12/03 11:41:04.56 G3Cx7y7o.net
inline関数を使うときに
VCだと
inline int hoge(int fuga){ 中身 }
で使えるのに
mingw/gccとかだと
static inline int hoge(int fuga){ 中身 }
って描かないと使えない
なんで?
(.cに描くとか.hに描くとかそういうの無関係な話で)

1002:デフォルトの名無しさん
25/12/03 12:52:21.06 yVL3HxQ8.net
使えるよ
リンカーエラーでも出てる?

1003:デフォルトの名無しさん
25/12/03 12:55:52.88 yVL3HxQ8.net
あーわかった
>>996 cではなくてc++でコンパイルしな?

1004:はちみつ餃子
25/12/03 14:09:55.16 OnxLfrF+.net
>>996
C ではインライン定義は外部定義 (external definition; 要するに普通の実体ある関数) の代替を与えるというルールで、インライン定義自体は外部定義を与えない (作らない)。

呼び出しのほうは実体のある外部定義を呼び出すか代用品であるインライン定義を使うかは未規定。
インライン化用の代用品を使うかもしれないし、実体のある関数を呼び出すかもしれない。
実体のある関数を使う選択をしたときに >>996 の状況では実体のある関数は作られていないから存在しないというリンカエラーになる。
GCC でも最適化オプションを付けてインライン化されてしまったときは (インライン化されたら関数をリンクする必要がないので) エラーにならずにリンクが完了することもある。

以下のように extern 付きの宣言を付けるとインライン関数定義から外部定義の生成を強制できるのでこれで対処することも出来る。

inline void foo(void) {}
extern void foo(void);

int main(void) {
foo();
}

C++ だとインライン関数がもう少し普通の関数と扱いが平等に近づいているので分かり易いんだが……

1005:デフォルトの名無しさん
25/12/03 22:07:45.02 Eh+HvnbR.net
らしいがこの人も勘違いしてそう
URLリンク(zenn.dev)
URLリンク(wocota.hatenadiary.org)

1006:デフォルトの名無しさん
25/12/04 05:43:42.35 7puO0DHP.net
.hの方にinlineで
.cの方にexternってことか
気持ち悪いけど納得

1007:デフォルトの名無しさん
25/12/12 16:01:42.00 jYZhnAHV.net
今では LTO を有効にすれば翻訳単位をまたいだ最適化 (インライン化を含む) もされるし、 inline 指定をつけてもインライン化するとは限らない。
規則を理解するに越したことはないけど現代的なリッチなコンパイラでは最適化のために inline 指定をする必要性は薄いと思う。

1008:デフォルトの名無しさん
26/01/02 18:25:18.51 EL7JrbLS.net
tv

1009:デフォルトの名無しさん
26/01/02 18:28:29.67 EL7JrbLS.net
vt

1010:デフォルトの名無しさん
26/01/02 18:34:13.89 EL7JrbLS.net
bvt

1011:デフォルトの名無しさん
26/01/02 18:34:43.22 EL7JrbLS.net
tyc

1012:小倉優子
26/01/02 18:35:10.50 EL7JrbLS.net
  ∧,,,∧ 
 (  ・∀・) 1000ならジュースでも飲むか
  (    ) 
  し─J 

1013:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 4119日 18時間 15分 0秒

1014:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch