25/07/16 00:05:19.73 54zFMq80.net
次スレ立てるときにはcygwinは控えめで
MSYS2ルート(mingw64-gcc/clang/bash/各種ライブラリ等windowsネイティブポート)
VSCodeルート(msys2導入せずmingw64コンパイラだけ導入)
WSL2ルート
のそれぞれで誰か説明したらwindowsプログラミング初心者(VSは使いたくない人)の助けになるかも
>>982
AIでまとめて貰っても良いかも
984:デフォルトの名無しさん
25/07/16 03:12:54.62 07jtrGs0.net
TDM-GCC64ってなんなん
985:デフォルトの名無しさん
25/07/16 16:55:53.12 8VyoLyXs.net
>>983
gccの話なら開発環境は全部Linuxで済ませてWindowsはあくまでターゲットのひとつに留めといたほうが簡単で楽なんだけどね
まあこのスレはcygwin/mingwのスレだからそれはスレチか
986:デフォルトの名無しさん
25/07/16 18:56:50.02 uj9eYc0f.net
>>980
Visual Studioが至れり尽くせりなんだけど、それだけだとロックインするからスレタイの環境に興味がある人がいると思う
ただしこのスレではMSYS2以外で導入していろんな墓穴を掘っている傾向がある
とりあえずMSYS2導入(とその後のメンテ)をQiita/Zennで調べたら、初PCゲットしたてのスマホキッズでも躓く事は少ないのでは
マルチプラットフォームアプリ開発等の必要性が出てきたらWSLにすれば良いかと
987:デフォルトの名無しさん
25/07/16 19:02:18.06 uj9eYc0f.net
>>984
それは更新されてないから無視して良いかと
>>986にちょと書いたけど、初期導入以外にも本家gccへの追従更新やサードライブラリ追加導入の事も大切
そこがMSYS2が手頃なので
988:デフォルトの名無しさん
25/07/16 19:04:00.62 uj9eYc0f.net
もちろん「プログラミング熟達者」は好きにしたら良いと思う
989:デフォルトの名無しさん
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の方が都合がよいのでこちらを残すかと
思ってるのだが、なー
990:デフォルトの名無しさん
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環境がおかしくなったら、涙を拭いて頑張る、になるが
991:デフォルトの名無しさん
25/08/24 10:11:40.65 FHs64gUC.net
全部入りがいいならMSYS2でいい
992:デフォルトの名無しさん
25/08/24 21:06:59.10 JGmFRBjN.net
msys2で全部入り(随時追加)が良いよ
各ランタイムの開発環境(ucrt64,mingw64,clang64)の合計なんて30GBにも満たない
昨今の(mono)プロジェクト単位の依存関係インストールに比べたら軽いものでは
993:デフォルトの名無しさん
25/08/27 03:14:16.66 nJC8HQwX.net
windowsのパス環境変数取り合いになるからなあ
こういうの
統合してほしい
994:デフォルトの名無しさん
25/08/27 05:44:42.72 F9vl64W8.net
そう言う疑問はmsys2インストールして環境別のショートカットを見たら直ぐに分かる
995:デフォルトの名無しさん
25/10/12 05:50:47.01 W2SaGlg4.net
>>992
でけーよ…
996:デフォルトの名無しさん
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に描くとかそういうの無関係な話で)
997:デフォルトの名無しさん
25/12/03 12:52:21.06 yVL3HxQ8.net
使えるよ
リンカーエラーでも出てる?
998:デフォルトの名無しさん
25/12/03 12:55:52.88 yVL3HxQ8.net
あーわかった
>>996 cではなくてc++でコンパイルしな?
999:はちみつ餃子
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++ だとインライン関数がもう少し普通の関数と扱いが平等に近づいているので分かり易いんだが……
1000:デフォルトの名無しさん
25/12/03 22:07:45.02 Eh+HvnbR.net
らしいがこの人も勘違いしてそう
URLリンク(zenn.dev)
URLリンク(wocota.hatenadiary.org)
1001:デフォルトの名無しさん
25/12/04 05:43:42.35 7puO0DHP.net
.hの方にinlineで
.cの方にexternってことか
気持ち悪いけど納得