Cygwin + MinGW + GCC 相談室 Part 8 (995レス)
上下前次1-新
983: 08/23(土)21:23 ID:ophcDa1q(1) AAS
>>982
Git for Winのmingw環境は、あくまでもgitのためのものだからな
bash、grepはじめ、UNIX的コマンドをより完全に使いたいのなら、
やはりCwgwin+MinGW+GCCかなと
ただ、Gitをメインに据えたいというのなら、
逆にGitのMinGWにgccとかを入れていくのがよいかなと
コマンドが足りなければその時にまた追加していく、で
省1
984: 08/24(日)10:11 ID:FHs64gUC(1) AAS
全部入りがいいならMSYS2でいい
985(1): 08/24(日)21:06 ID:JGmFRBjN(1) AAS
msys2で全部入り(随時追加)が良いよ
各ランタイムの開発環境(ucrt64,mingw64,clang64)の合計なんて30GBにも満たない
昨今の(mono)プロジェクト単位の依存関係インストールに比べたら軽いものでは
986: 08/27(水)03:14 ID:nJC8HQwX(1) AAS
windowsのパス環境変数取り合いになるからなあ
こういうの
統合してほしい
987: 08/27(水)05:44 ID:F9vl64W8(1) AAS
そう言う疑問はmsys2インストールして環境別のショートカットを見たら直ぐに分かる
988: 10/12(日)05:50 ID:W2SaGlg4(1) AAS
>>985
でけーよ…
989(2): 12/03(水)11:41 ID:G3Cx7y7o(1) AAS
inline関数を使うときに
VCだと
inline int hoge(int fuga){ 中身 }
で使えるのに
mingw/gccとかだと
static inline int hoge(int fuga){ 中身 }
って描かないと使えない
省2
990: 12/03(水)12:52 ID:yVL3HxQ8(1/2) AAS
使えるよ
リンカーエラーでも出てる?
991: 12/03(水)12:55 ID:yVL3HxQ8(2/2) AAS
あーわかった
>>989 cではなくてc++でコンパイルしな?
992: はちみつ餃子 ◆8X2XSCHEME 12/03(水)14:09 ID:OnxLfrF+(1) AAS
>>989
C ではインライン定義は外部定義 (external definition; 要するに普通の実体ある関数) の代替を与えるというルールで、インライン定義自体は外部定義を与えない (作らない)。
呼び出しのほうは実体のある外部定義を呼び出すか代用品であるインライン定義を使うかは未規定。
インライン化用の代用品を使うかもしれないし、実体のある関数を呼び出すかもしれない。
実体のある関数を使う選択をしたときに >>989 の状況では実体のある関数は作られていないから存在しないというリンカエラーになる。
GCC でも最適化オプションを付けてインライン化されてしまったときは (インライン化されたら関数をリンクする必要がないので) エラーにならずにリンクが完了することもある。
以下のように extern 付きの宣言を付けるとインライン関数定義から外部定義の生成を強制できるのでこれで対処することも出来る。
省6
993: 12/03(水)22:07 ID:Eh+HvnbR(1) AAS
らしいがこの人も勘違いしてそう
外部リンク:zenn.dev
外部リンク:wocota.hatenadiary.org
994: 12/04(木)05:43 ID:7puO0DHP(1) AAS
.hの方にinlineで
.cの方にexternってことか
気持ち悪いけど納得
995: 12/12(金)16:01 ID:jYZhnAHV(1) AAS
今では LTO を有効にすれば翻訳単位をまたいだ最適化 (インライン化を含む) もされるし、 inline 指定をつけてもインライン化するとは限らない。
規則を理解するに越したことはないけど現代的なリッチなコンパイラでは最適化のために inline 指定をする必要性は薄いと思う。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.010s