質問です。
・ OS は windows10 で、最近 MinGW-w64 を導入した。
・ 下記の test.cpp ファイルに対して g++ -m64 -o test5 test.cpp と実行。
test.cpp
#include <stdio.h>
#include <stdint.h>
int main(){ printf("%d %x %zu", sizeof(long), sizeof(long), sizeof(long)); getchar(); return 0; }
・ 出力された test5.exe を実行してみると、なぜか「4 4 4」と表示されてしまい、
「8」が1個もない。64ビット環境では、sizeof(long) は「8」なのでは?
・ test5.exe を右クリックして互換モードの欄を見てみると、
Vista 以降のものしか表示されないので、
ちゃんと64ビット版の実行ファイルになっている
(他にも色々な確認方法があるが、いずれも64ビット版に合致する)。
・ それなのに「8」と表示されないのはなぜ?
Cygwin + MinGW + GCC 相談室 Part 8
レス数が950を超えています。1000を超えると書き込みができなくなります。
944デフォルトの名無しさん
2023/12/24(日) 13:46:07.33ID:zZdFC2zj945はちみつ餃子 ◆8X2XSCHEME
2023/12/24(日) 15:28:23.49ID:SfA3xmSz >>944
> 64ビット環境では、sizeof(long) は「8」なのでは?
単にその認識が誤り。
64ビット版の Windows の ABI では long は 4 バイトと規定してる。
https://learn.microsoft.com/ja-jp/cpp/build/x64-software-conventions?view=msvc-170#scalar-types
コンパイラが OS の規定に逆らって独自の仕様にしたってかまわないんだけど、
やりとりがややこしくなっちゃうだけで得なことはないからね。
> 64ビット環境では、sizeof(long) は「8」なのでは?
単にその認識が誤り。
64ビット版の Windows の ABI では long は 4 バイトと規定してる。
https://learn.microsoft.com/ja-jp/cpp/build/x64-software-conventions?view=msvc-170#scalar-types
コンパイラが OS の規定に逆らって独自の仕様にしたってかまわないんだけど、
やりとりがややこしくなっちゃうだけで得なことはないからね。
946デフォルトの名無しさん
2023/12/24(日) 19:23:18.89ID:zZdFC2zj じゃあこの挙動で問題ないんですね。ありがとうございました。
947デフォルトの名無しさん
2024/05/29(水) 06:44:42.24ID:85k4cg9J mingw64でglibとgstreamerに動的リンクしたバイナリ作ったんだけど、glibは関数呼べるけどgstreamerは関数呼べない
なぜかgstreamerの関数を書くとプログラムの起動がコケて関数をコメントアウトするとちゃんと起動する
リンクがおかしいのかもと調べてみたけどちゃんと動的ライブラリはリンクしてるっぽい
あと考えられるのは動的ライブラリの破損ぐらいなんだけど、お前ら何か考えつくことある?
なぜかgstreamerの関数を書くとプログラムの起動がコケて関数をコメントアウトするとちゃんと起動する
リンクがおかしいのかもと調べてみたけどちゃんと動的ライブラリはリンクしてるっぽい
あと考えられるのは動的ライブラリの破損ぐらいなんだけど、お前ら何か考えつくことある?
948947
2024/05/29(水) 07:56:37.14ID:85k4cg9J gstreamerのバージョン下げたら解決した
949デフォルトの名無しさん
2024/06/15(土) 21:47:14.13ID:Ate4RGLQ VC6時代のソースをビルドしてlddで見ると以下のようになった
ntdll.dll
KERNEL32.DLL
KERNELBASE.dll
msvcrt.dll
VC22は以下
ntdll.dll
KERNEL32.DLL
KERNELBASE.dll
ucrtbase.dll
VCRUNTIME140.dll
上のmsvcrt.dllの代わりに下のucrtbase.dllとVCRUNTIME140.dllでビルドできないか
ファイルサイズがstripしてもVC22の10倍になってしまいmsvcrt.dllを疑っている
バージョンは
gcc version 11.2.0 (Rev6, Built by MSYS2 project)
ntdll.dll
KERNEL32.DLL
KERNELBASE.dll
msvcrt.dll
VC22は以下
ntdll.dll
KERNEL32.DLL
KERNELBASE.dll
ucrtbase.dll
VCRUNTIME140.dll
上のmsvcrt.dllの代わりに下のucrtbase.dllとVCRUNTIME140.dllでビルドできないか
ファイルサイズがstripしてもVC22の10倍になってしまいmsvcrt.dllを疑っている
バージョンは
gcc version 11.2.0 (Rev6, Built by MSYS2 project)
950デフォルトの名無しさん
2025/01/05(日) 11:05:05.31ID:0SlvKtyY hosyu
951デフォルトの名無しさん
2025/03/09(日) 23:22:05.65ID:sClrYMAa もう8時間もビルドしてるんだが?
いつ終わるんだ
いつ終わるんだ
952デフォルトの名無しさん
2025/03/10(月) 00:26:15.12ID:L5uR+Msw 何を?
953デフォルトの名無しさん
2025/03/10(月) 10:28:51.60ID:L5uR+Msw 終わったかな?
954デフォルトの名無しさん
2025/03/10(月) 15:40:18.94ID:3GRyZaix コンパイルだけで14時間かかった
インストールでエラーが出て終了
インストールでエラーが出て終了
955デフォルトの名無しさん
2025/03/10(月) 23:09:09.64ID:L5uR+Msw 何を?
956はちみつ餃子 ◆8X2XSCHEME
2025/03/11(火) 09:58:54.15ID:GvJGmymX スレの主旨からすると GCC のコンパイルかな?
ただでさえ時間がかかるのにステージ3までやったら単純に三倍ってことだからなー
ただでさえ時間がかかるのにステージ3までやったら単純に三倍ってことだからなー
957デフォルトの名無しさん
2025/03/12(水) 15:30:34.03ID:aNDBBqWo cygwin使うって事はwindowsの人なんだろうけど
gccをバイナリじゃなくてソースから入れたがる理由はなんだろ
gccをバイナリじゃなくてソースから入れたがる理由はなんだろ
958はちみつ餃子 ◆8X2XSCHEME
2025/03/12(水) 15:43:42.31ID:cxKhqENs クロスコンパイル環境を構築するときはバイナリが見当たらないということもある。
959デフォルトの名無しさん
2025/03/13(木) 04:45:54.85ID:eyMSpLdK 解決しました
cgwinじゃなくてlinux環境のgccです
GCCについてのスレがDAT落ちしてたので藁をもすがる思いでこちらに書きました
gitから落とした某ソースをやってたんですがエラーログ見たら環境変数が不正だったので該当の.cに追記したら無事インストール出来ました
助かりました
遅いのはマシンスペックが大概なのもあると思います
cgwinじゃなくてlinux環境のgccです
GCCについてのスレがDAT落ちしてたので藁をもすがる思いでこちらに書きました
gitから落とした某ソースをやってたんですがエラーログ見たら環境変数が不正だったので該当の.cに追記したら無事インストール出来ました
助かりました
遅いのはマシンスペックが大概なのもあると思います
960デフォルトの名無しさん
2025/03/13(木) 11:20:49.35ID:NvBr8oPw > 藁をもすがる思いでこちらに書きました
これまでの経緯見て通じてると思ってるところがZ
チラ裏にでも書いて死んどけ
これまでの経緯見て通じてると思ってるところがZ
チラ裏にでも書いて死んどけ
961デフォルトの名無しさん
2025/03/19(水) 11:43:06.67ID:Irgid5LD 初心者に厳しいっていうのはこんなところだな
962デフォルトの名無しさん
2025/03/19(水) 12:50:01.68ID:0pCxXH7R × 初心者
○ 低知能馬鹿コミュ障クズ
他人が読んで分かるように書く気がないのなら、チラ裏か日記に書いとけ
相手のせいにするのはゆとりZクズの常套手段だが、そもそも何を知りたいのか分からんのでは答えようがない
コミュ障馬鹿の為に一応定義しておくと、例えば、初心者に厳しい=低レベルの質問をした場合に無視or馬鹿にされる、だ
エスパーしてでも回答しようとしてる奴も居るし、誰も該当しない
○ 低知能馬鹿コミュ障クズ
他人が読んで分かるように書く気がないのなら、チラ裏か日記に書いとけ
相手のせいにするのはゆとりZクズの常套手段だが、そもそも何を知りたいのか分からんのでは答えようがない
コミュ障馬鹿の為に一応定義しておくと、例えば、初心者に厳しい=低レベルの質問をした場合に無視or馬鹿にされる、だ
エスパーしてでも回答しようとしてる奴も居るし、誰も該当しない
963デフォルトの名無しさん
2025/03/22(土) 11:49:02.54ID:b/nN/9NR964デフォルトの名無しさん
2025/03/22(土) 14:19:58.73ID:U6/Lg1xx 判ってて使う分には問題無い
965デフォルトの名無しさん
2025/03/22(土) 21:56:27.10ID:cRNo9rU1 使っててとくに問題なさそうにみえて実は非常にコアな部分でトンでもない不具合が生じていて
一見ふつうに動いているだけという可能性はある
さりとて、じゃあMSYS2がサポートしてる環境下で「絶対に確実にすべてが問題なく動いている」という保証も
じつのところないので、結局そういうことを気にしたら負け
一見ふつうに動いているだけという可能性はある
さりとて、じゃあMSYS2がサポートしてる環境下で「絶対に確実にすべてが問題なく動いている」という保証も
じつのところないので、結局そういうことを気にしたら負け
966デフォルトの名無しさん
2025/06/26(木) 17:52:15.96ID:nmyewptE wsl2でlinux版のmingw使ってるけどすごくいいね
gcc on linuxとgcc on mingw on linuxでlinux/winのバイナリを両方吐ける
これからのクロス開発のスタンダードになるんじゃ?
gcc on linuxとgcc on mingw on linuxでlinux/winのバイナリを両方吐ける
これからのクロス開発のスタンダードになるんじゃ?
967デフォルトの名無しさん
2025/06/26(木) 18:43:04.44ID:JONMqo8w 大昔からクロス用に使われていたgccをさも今自分が発見しましたみたいに言われても…
ちなclangの方がひとつのコンパイラで複数ターゲットに対応できるからもっと簡単
ちなclangの方がひとつのコンパイラで複数ターゲットに対応できるからもっと簡単
968デフォルトの名無しさん
2025/06/27(金) 09:28:46.15ID:H+pgJuGy >>966
とっくになってるでしょ
とっくになってるでしょ
969デフォルトの名無しさん
2025/06/27(金) 09:29:24.03ID:H+pgJuGy >大昔からクロス用に使われていたgccをさも今自分が発見しましたみたいに
ほんそれ
開いた口が塞がらんわ
ほんそれ
開いた口が塞がらんわ
970デフォルトの名無しさん
2025/07/06(日) 09:46:03.14ID:jyZjYPic (たぶん)初心者が使ってて自分があっと気付いたから書いただけで、さも自分が発見しました!なんて言ってないだろ…
そもそも毎スレ掘り返される話題だし、それで初心者を萎縮させるのはどうかと
>>891くらいまで発展的用法バリバリ使ってたら、お前ら叩かんやろ?
そもそも毎スレ掘り返される話題だし、それで初心者を萎縮させるのはどうかと
>>891くらいまで発展的用法バリバリ使ってたら、お前ら叩かんやろ?
971デフォルトの名無しさん
2025/07/06(日) 10:20:31.05ID:RFZXbMVg いってるね
972デフォルトの名無しさん
2025/07/10(木) 02:15:09.38ID:K1GlzFeW これは言ってるようにしか読めないわ
973デフォルトの名無しさん
2025/07/15(火) 23:36:59.18ID:hInNkoM6 ここの回答者クズばっかだな
そら初心者こないわ
そら初心者こないわ
974デフォルトの名無しさん
2025/07/15(火) 23:48:52.15ID:bTX3ONQP スレタイの初心者とは言え内容的にはプログラミング熟達者の方が多いから自力解決する事が多いのでは
975デフォルトの名無しさん
2025/07/15(火) 23:55:01.09ID:Xa+JcFPE 煽りとかそういうのでなく、純粋に意見として
今は初心者レベルの人はAIに聞いたほうがはるかに有用な答が得られる
今は初心者レベルの人はAIに聞いたほうがはるかに有用な答が得られる
976デフォルトの名無しさん
2025/07/16(水) 00:05:19.73ID:54zFMq80 次スレ立てるときにはcygwinは控えめで
MSYS2ルート(mingw64-gcc/clang/bash/各種ライブラリ等windowsネイティブポート)
VSCodeルート(msys2導入せずmingw64コンパイラだけ導入)
WSL2ルート
のそれぞれで誰か説明したらwindowsプログラミング初心者(VSは使いたくない人)の助けになるかも
>>975
AIでまとめて貰っても良いかも
MSYS2ルート(mingw64-gcc/clang/bash/各種ライブラリ等windowsネイティブポート)
VSCodeルート(msys2導入せずmingw64コンパイラだけ導入)
WSL2ルート
のそれぞれで誰か説明したらwindowsプログラミング初心者(VSは使いたくない人)の助けになるかも
>>975
AIでまとめて貰っても良いかも
977デフォルトの名無しさん
2025/07/16(水) 03:12:54.62ID:07jtrGs0 TDM-GCC64ってなんなん
978デフォルトの名無しさん
2025/07/16(水) 16:55:53.12ID:8VyoLyXs >>976
gccの話なら開発環境は全部Linuxで済ませてWindowsはあくまでターゲットのひとつに留めといたほうが簡単で楽なんだけどね
まあこのスレはcygwin/mingwのスレだからそれはスレチか
gccの話なら開発環境は全部Linuxで済ませてWindowsはあくまでターゲットのひとつに留めといたほうが簡単で楽なんだけどね
まあこのスレはcygwin/mingwのスレだからそれはスレチか
979デフォルトの名無しさん
2025/07/16(水) 18:56:50.02ID:uj9eYc0f >>973
Visual Studioが至れり尽くせりなんだけど、それだけだとロックインするからスレタイの環境に興味がある人がいると思う
ただしこのスレではMSYS2以外で導入していろんな墓穴を掘っている傾向がある
とりあえずMSYS2導入(とその後のメンテ)をQiita/Zennで調べたら、初PCゲットしたてのスマホキッズでも躓く事は少ないのでは
マルチプラットフォームアプリ開発等の必要性が出てきたらWSLにすれば良いかと
Visual Studioが至れり尽くせりなんだけど、それだけだとロックインするからスレタイの環境に興味がある人がいると思う
ただしこのスレではMSYS2以外で導入していろんな墓穴を掘っている傾向がある
とりあえずMSYS2導入(とその後のメンテ)をQiita/Zennで調べたら、初PCゲットしたてのスマホキッズでも躓く事は少ないのでは
マルチプラットフォームアプリ開発等の必要性が出てきたらWSLにすれば良いかと
980デフォルトの名無しさん
2025/07/16(水) 19:02:18.06ID:uj9eYc0f981デフォルトの名無しさん
2025/07/16(水) 19:04:00.62ID:uj9eYc0f もちろん「プログラミング熟達者」は好きにしたら良いと思う
982デフォルトの名無しさん
2025/08/22(金) 17:08:27.47ID:3pyH/4Fj Windows用Gitに、msys2由来のコマンド類が結構入ってるけど、
こっちはどれくらい使えるものなのだろう
コンパイラは無い、というのはいいとして、
grep、sed、awkとから辺は入っているから
とりあえずシェルスクリプトでちょっと何かをしたい、と
思った時とかは、Gitについてるコマンド類でも充分なのかな
正直、Windows用GitとCygwin+MinGWを導入していると、
gnu-utilsあたりのコマンドが両方入っているような感じで、
どっちかもう消したいんよね
gitはWindows用Gitの方が都合がよいのでこちらを残すかと
思ってるのだが、なー
こっちはどれくらい使えるものなのだろう
コンパイラは無い、というのはいいとして、
grep、sed、awkとから辺は入っているから
とりあえずシェルスクリプトでちょっと何かをしたい、と
思った時とかは、Gitについてるコマンド類でも充分なのかな
正直、Windows用GitとCygwin+MinGWを導入していると、
gnu-utilsあたりのコマンドが両方入っているような感じで、
どっちかもう消したいんよね
gitはWindows用Gitの方が都合がよいのでこちらを残すかと
思ってるのだが、なー
983デフォルトの名無しさん
2025/08/23(土) 21:23:36.16ID:ophcDa1q >>982
Git for Winのmingw環境は、あくまでもgitのためのものだからな
bash、grepはじめ、UNIX的コマンドをより完全に使いたいのなら、
やはりCwgwin+MinGW+GCCかなと
ただ、Gitをメインに据えたいというのなら、
逆にGitのMinGWにgccとかを入れていくのがよいかなと
コマンドが足りなければその時にまた追加していく、で
それでgit環境がおかしくなったら、涙を拭いて頑張る、になるが
Git for Winのmingw環境は、あくまでもgitのためのものだからな
bash、grepはじめ、UNIX的コマンドをより完全に使いたいのなら、
やはりCwgwin+MinGW+GCCかなと
ただ、Gitをメインに据えたいというのなら、
逆にGitのMinGWにgccとかを入れていくのがよいかなと
コマンドが足りなければその時にまた追加していく、で
それでgit環境がおかしくなったら、涙を拭いて頑張る、になるが
984デフォルトの名無しさん
2025/08/24(日) 10:11:40.65ID:FHs64gUC 全部入りがいいならMSYS2でいい
985デフォルトの名無しさん
2025/08/24(日) 21:06:59.10ID:JGmFRBjN msys2で全部入り(随時追加)が良いよ
各ランタイムの開発環境(ucrt64,mingw64,clang64)の合計なんて30GBにも満たない
昨今の(mono)プロジェクト単位の依存関係インストールに比べたら軽いものでは
各ランタイムの開発環境(ucrt64,mingw64,clang64)の合計なんて30GBにも満たない
昨今の(mono)プロジェクト単位の依存関係インストールに比べたら軽いものでは
986デフォルトの名無しさん
2025/08/27(水) 03:14:16.66ID:nJC8HQwX windowsのパス環境変数取り合いになるからなあ
こういうの
統合してほしい
こういうの
統合してほしい
987デフォルトの名無しさん
2025/08/27(水) 05:44:42.72ID:F9vl64W8 そう言う疑問はmsys2インストールして環境別のショートカットを見たら直ぐに分かる
988デフォルトの名無しさん
2025/10/12(日) 05:50:47.01ID:W2SaGlg4 >>985
でけーよ…
でけーよ…
レスを投稿する
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 【外交】元台湾総統・馬英九氏、高市首相発言に「台湾を危険にさらす」台湾海峡の問題は「両岸の中国人が自ら話し合うべき」★2 [1ゲットロボ★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★8 [ぐれ★]
- 「母の部屋に安倍氏が表紙の機関誌が」「(安倍氏が被害者なのは)不思議に思いませんでした」山上被告の妹が証言 [おっさん友の会★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★5 [BFU★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 [ぐれ★]
