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/
探検
Cygwin + MinGW + GCC 相談室 Part 8
1デフォルトの名無しさん
2014/09/23(火) 00:20:11.40ID:G97CLCj1557デフォルトの名無しさん
2019/08/24(土) 09:36:31.35ID:u2q8uNB0 staticになってるだけというオチだったらわろす
558デフォルトの名無しさん
2019/08/24(土) 14:59:08.43ID:H4K4vAej ただ単に -static -O3 -mtune=skylake を指定していないだけ
じゃねえだろうな?
じゃねえだろうな?
559デフォルトの名無しさん
2019/08/24(土) 17:29:38.98ID:Glqz8i+r staticオプションは特に指定しませんが……
dllの読み込みが原因だとしたらstaticにすれば解決という話ですか
そういう発想はなかった
>>558
--mtune=skylakeってなんですか?
dllの読み込みが原因だとしたらstaticにすれば解決という話ですか
そういう発想はなかった
>>558
--mtune=skylakeってなんですか?
560デフォルトの名無しさん
2019/08/24(土) 17:48:35.57ID:u2q8uNB0 DLLよりstaticが速いとか都市伝説
561デフォルトの名無しさん
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を読み込むよりは、必要な関数のみをリンクしたスタティックな
状態の方が早い場合があるかもってこと
-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を読み込むよりは、必要な関数のみをリンクしたスタティックな
状態の方が早い場合があるかもってこと
562デフォルトの名無しさん
2019/08/25(日) 19:02:38.36ID:7s5pz20M もっと短く
563デフォルトの名無しさん
2019/08/25(日) 23:51:01.48ID:V1f8d4H1564デフォルトの名無しさん
2019/08/26(月) 01:28:47.93ID:K2zp8I6+ やっぱり名前解決の問題が大きいんすよ
ライブラリの読み込みだけでは説明できない
ライブラリの読み込みだけでは説明できない
565デフォルトの名無しさん
2019/08/26(月) 14:11:24.03ID:T0vtMl8v >スタックリンクの場合には自分のプログラムの実行コードに加えてlibhoge.aから抽出した
>関数BとDのコードを読み込むだけなので関数AとCのコードを読み込まない分ロードが
これ関数単位でソース分けてあって
一関数が一objになってる場合だけだよな
>関数BとDのコードを読み込むだけなので関数AとCのコードを読み込まない分ロードが
これ関数単位でソース分けてあって
一関数が一objになってる場合だけだよな
566デフォルトの名無しさん
2019/08/26(月) 14:11:24.09ID:T0vtMl8v >スタックリンクの場合には自分のプログラムの実行コードに加えてlibhoge.aから抽出した
>関数BとDのコードを読み込むだけなので関数AとCのコードを読み込まない分ロードが
これ関数単位でソース分けてあって
一関数が一objになってる場合だけだよな
>関数BとDのコードを読み込むだけなので関数AとCのコードを読み込まない分ロードが
これ関数単位でソース分けてあって
一関数が一objになってる場合だけだよな
567デフォルトの名無しさん
2019/08/26(月) 17:43:39.53ID:eYWa871J dll読み込みってそんなに重いかな?
なんか別のところで時間がかかっていそうな感じ。
なんか別のところで時間がかかっていそうな感じ。
568デフォルトの名無しさん
2019/08/26(月) 21:44:29.54ID:CEMf0Y7L569デフォルトの名無しさん
2019/08/27(火) 05:30:30.81ID:FSIINwco570デフォルトの名無しさん
2019/08/27(火) 09:41:49.02ID:NZJyfwBK -O3に完璧を求める方が可笑しい
571デフォルトの名無しさん
2019/08/27(火) 11:08:45.95ID:NDEdv6OD そこで-Ofastですよ
572デフォルトの名無しさん
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 を作るのはどうすればよかったか思い出せません
hoge.dll と hoge.lib は有るのですが
libhoge.a がありません
あと hoge.c とかのソースファイルもありません
hoge.def は hoge.dll から作れるのですが
hoge.lib から libhoge.a を作るのはどうすればよかったか思い出せません
574デフォルトの名無しさん
2019/08/28(水) 17:25:07.66ID:iAy2zRVx https://stackoverflow.com/questions/8683046/compatibility-of-dll-a-lib-def-between-visualstudio-and-gcc
dlltool.exe -m i386:x86-64 -d libhoge.def -D hoge.dll -l libhoge.a
dlltool.exe -m i386 -d libhoge.def -D hoge.dll -l libhoge.a
しらんけど
dlltool.exe -m i386:x86-64 -d libhoge.def -D hoge.dll -l libhoge.a
dlltool.exe -m i386 -d libhoge.def -D hoge.dll -l libhoge.a
しらんけど
575デフォルトの名無しさん
2019/08/28(水) 17:45:16.06ID:4qorfKL6 実際parallelstlをコンパイルするのはVCの方が楽だしな
これを.aに変換したいと思っていたのでありがたいです
これを.aに変換したいと思っていたのでありがたいです
576デフォルトの名無しさん
2019/09/03(火) 16:24:26.27ID:fy59PR5b 9.2.0 Rev2 でPCHのエラーが出なくなった。
577デフォルトの名無しさん
2019/09/13(金) 12:46:20.65ID:wKEqF87n 本物のWInネイティブアプリの起動はもっと速いのかもしれません。
MinGW+MSYS2がCygwinより速い理由が釈然としませんが、
forkがCygwinのものまんまよりは多少軽量だったりするんだろうか
https://twitter.com/nullpo_head/status/905032098506915840
https://twitter.com/5chan_nel (5ch newer account)
MinGW+MSYS2がCygwinより速い理由が釈然としませんが、
forkがCygwinのものまんまよりは多少軽量だったりするんだろうか
https://twitter.com/nullpo_head/status/905032098506915840
https://twitter.com/5chan_nel (5ch newer account)
578デフォルトの名無しさん
2019/09/13(金) 12:48:07.35ID:wKEqF87n579デフォルトの名無しさん
2019/09/13(金) 13:01:11.82ID:hxTRiT39 mingwはその本物のネイティブとちゃうか
580デフォルトの名無しさん
2019/09/13(金) 15:13:51.93ID:ud7Tmahn cygwin の fork = native じゃなくて emu
mingw の fork = あるんか?
mingw の fork = あるんか?
581デフォルトの名無しさん
2019/09/13(金) 16:40:00.05ID:08rV0d8/ MinGW+MSYS2がCygwinより速い理由は
Cygwinはたとえ遅くなろうとも完璧なエミュレートを目指してるのに対して
MinGW+MSYS2は目指してないから
Cygwinはたとえ遅くなろうとも完璧なエミュレートを目指してるのに対して
MinGW+MSYS2は目指してないから
582デフォルトの名無しさん
2019/09/13(金) 18:56:41.57ID:2jKM3FP9 MSYS2は、Windowsネイティブアプリを作るための環境です。
Windowsネイティブアプリを作りましょう。
Windowsネイティブアプリを作りましょう。
583デフォルトの名無しさん
2019/09/13(金) 19:47:41.41ID:+NnovRbX >>581
どういうことなの…
どういうことなの…
584デフォルトの名無しさん
2019/09/14(土) 10:05:32.62ID:NwEptffo585デフォルトの名無しさん
2019/09/14(土) 10:32:34.60ID:NwEptffo なぜ今 fork が熱いのか
https://mao.5ch.net/test/read.cgi/linux/1560665525/
https://mao.5ch.net/test/read.cgi/linux/1560665525/
586デフォルトの名無しさん
2019/09/14(土) 11:49:59.95ID:mIZ3m5oP http://www.kobore.net/diary_techno/?date=20180221
http://www.kobore.net/diary_techno/?date=0214
https://books.google.co.jp/books?id=NdmjDwAAQBAJ&pg=PT819&dq=NTDLL+RtlCloneUserProcess
http://www.kobore.net/diary_techno/?date=0214
https://books.google.co.jp/books?id=NdmjDwAAQBAJ&pg=PT819&dq=NTDLL+RtlCloneUserProcess
587デフォルトの名無しさん
2019/09/15(日) 06:58:43.73ID:zbVYZgVB588デフォルトの名無しさん
2019/10/02(水) 07:41:31.63ID:WxowMW3Q GMPって真面目にソースtarからビルドするしかないの? ビルド済みのバイナリですぐ使えるのがあれば欲しいんだけどcygwinのインストーラでチェック入れてもダメで、なんじゃこりゃってなってるんだけど。
589デフォルトの名無しさん
2019/10/02(水) 11:20:07.41ID:55+aQRnY590デフォルトの名無しさん
2019/10/02(水) 11:46:15.82ID:55+aQRnY 4.1.2 は解決
591デフォルトの名無しさん
2019/10/02(水) 12:47:35.09ID:pQm6Lk8A >>589
どうでもいいことだが Stack Overflow のURLは削れる。
build - Are there any recent GMP Windows binary distributions? - Stack Overflow
https://stackoverflow.com/questions/19192963
どうでもいいことだが Stack Overflow のURLは削れる。
build - Are there any recent GMP Windows binary distributions? - Stack Overflow
https://stackoverflow.com/questions/19192963
592デフォルトの名無しさん
2019/10/02(水) 12:53:13.99ID:55+aQRnY どうでもいいことだが thx
https://stackoverflow.com/questions/19192963/are-there-any-recent-gmp-windows-binary-distributions
と
build - Are there any recent GMP Windows binary distributions? - Stack Overflow
https://stackoverflow.com/questions/19192963/
では前者の方がバイト数は少ない
https://stackoverflow.com/questions/19192963/are-there-any-recent-gmp-windows-binary-distributions
と
build - Are there any recent GMP Windows binary distributions? - Stack Overflow
https://stackoverflow.com/questions/19192963/
では前者の方がバイト数は少ない
593デフォルトの名無しさん
2019/10/19(土) 01:49:14.48ID:US3VZtYL msys2のpacmanでfdupesがないんですけど、どっからか手に入りますか?
594593
2019/10/19(土) 15:58:06.55ID:US3VZtYL arch linuxので解決
595デフォルトの名無しさん
2019/11/10(日) 23:46:15.76ID:vZIjc/J6 長期間更新がありませんが何か支障があるのでしょうか・・
596デフォルトの名無しさん
2019/11/14(木) 16:18:35.97ID:m0xrmwtq >>595
あるよ
あるよ
597デフォルトの名無しさん
2019/11/15(金) 14:11:12.27ID:L6hfSVpN >>595
ないない
ないない
598デフォルトの名無しさん
2019/11/15(金) 20:34:54.04ID:cedqxdDY ないあるよ
599デフォルトの名無しさん
2019/11/15(金) 23:50:32.38ID:z3wd5lUW WSL使ったら?
600デフォルトの名無しさん
2019/12/23(月) 02:13:46.99ID:IO6RyZUn Cygwin って /cygdrive上ではディレクトリまたげないんだけど、これってそんなもんだったっけ?
かなり久しぶりにCygwinを使おうとしているのだが困っている。
ディレクトリ構成 D:\DEV\debug で
下のディレクトリから上のディレクトリのファイルをコピーする、以下のコマンドが通らない。
MyMachine@MyName /cygdrive/d/dev/debug
$ cp ../some_file .
ディレクトリまたげないんだけど、こんなんだったっけ?
なお / をバックスラッシュにしても駄目。
なお/home以下のディレクトリならこれらのコマンドは通る。あまり試していないが、おそらく、/cygdrive以下だけ駄目。
何か設定がおかしい?それともこんなものだったっけ?
なお今のところディレクトリをまたげないだけでカレントについてはコマンドは通る。
かなり久しぶりにCygwinを使おうとしているのだが困っている。
ディレクトリ構成 D:\DEV\debug で
下のディレクトリから上のディレクトリのファイルをコピーする、以下のコマンドが通らない。
MyMachine@MyName /cygdrive/d/dev/debug
$ cp ../some_file .
ディレクトリまたげないんだけど、こんなんだったっけ?
なお / をバックスラッシュにしても駄目。
なお/home以下のディレクトリならこれらのコマンドは通る。あまり試していないが、おそらく、/cygdrive以下だけ駄目。
何か設定がおかしい?それともこんなものだったっけ?
なお今のところディレクトリをまたげないだけでカレントについてはコマンドは通る。
601デフォルトの名無しさん
2019/12/23(月) 02:30:38.75ID:IO6RyZUn602デフォルトの名無しさん
2019/12/23(月) 12:40:57.34ID:sEnpgkKc もちつけ
他人のせいにする前に自分を疑え
他人のせいにする前に自分を疑え
603デフォルトの名無しさん
2019/12/23(月) 12:45:36.48ID:CGg4xw4r 自分を疑う自分を疑え
604デフォルトの名無しさん
2019/12/23(月) 13:59:53.49ID:IO6RyZUn >>602
それはそうだが普段シンボリックリンクである事なんて意識しないからな。
いまだにcygwinではNTFSのシンボリックリンクを辿れないのはしょぼいと思うが。
なお32bit版。bashはversion4.4.12(3)、cygwin1.dll はversion 3001.2.0.0
(昨日の時点でsetup.exeを使いBestに更新)
64bit版なら行けるのかも?誰か動作報告よろしく。
それはそうだが普段シンボリックリンクである事なんて意識しないからな。
いまだにcygwinではNTFSのシンボリックリンクを辿れないのはしょぼいと思うが。
なお32bit版。bashはversion4.4.12(3)、cygwin1.dll はversion 3001.2.0.0
(昨日の時点でsetup.exeを使いBestに更新)
64bit版なら行けるのかも?誰か動作報告よろしく。
605デフォルトの名無しさん
2019/12/23(月) 14:06:09.78ID:sEnpgkKc NTFSのリンクはシンボリックリンクではないでしょ
606デフォルトの名無しさん
2019/12/23(月) 14:48:39.41ID:Losi+wwQ シンボリックリンクあるよ、ジャンクションじゃないやつ
607デフォルトの名無しさん
2019/12/23(月) 15:26:21.18ID:IO6RyZUn >>605
シンボリックリンクはSever2008/Vistaから導入された。もう10年以上前になる。
https://www.atmarkit.co.jp/fwin2k/win2ktips/988symlink/symlink.html
つかお前、このレベルの話を知らないでその言い草は完全に老害化してるぞ。
シンボリックリンクはSever2008/Vistaから導入された。もう10年以上前になる。
https://www.atmarkit.co.jp/fwin2k/win2ktips/988symlink/symlink.html
つかお前、このレベルの話を知らないでその言い草は完全に老害化してるぞ。
608デフォルトの名無しさん
2019/12/23(月) 15:39:18.43ID:Losi+wwQ mklink /? で普通に表示されるのに
それすらやったことないのか?
それすらやったことないのか?
609デフォルトの名無しさん
2019/12/23(月) 15:40:22.34ID:Losi+wwQ 共有フォルダ作るときなんか
シンボリックリンクとジャンクションの違いを知らないと困るだろうが
シンボリックリンクとジャンクションの違いを知らないと困るだろうが
610デフォルトの名無しさん
2019/12/23(月) 15:41:13.85ID:sEnpgkKc みなさん思いのほか親切ですね
611デフォルトの名無しさん
2019/12/23(月) 15:47:56.41ID:nbY+qllN >>604
シンボリックリンクもジャンクションも辿れるし、環境変数の設定(CYGWIN=winsymlinks:nativestrict)によってはln -sやtarの展開でNTFSのシンボリックリンクができる
NTFS側でD:とかをリンク先にしても、勝手に/cygdrive/d以下に読み替えてくれる
cygdrive以下だけ動かないなら、/etc/fstabの設定がおかしいとか?
シンボリックリンクもジャンクションも辿れるし、環境変数の設定(CYGWIN=winsymlinks:nativestrict)によってはln -sやtarの展開でNTFSのシンボリックリンクができる
NTFS側でD:とかをリンク先にしても、勝手に/cygdrive/d以下に読み替えてくれる
cygdrive以下だけ動かないなら、/etc/fstabの設定がおかしいとか?
612デフォルトの名無しさん
2019/12/23(月) 15:48:24.03ID:sEnpgkKc だけどシンボリックリンクωを名乗ってるだけでシンボリックリンクではないですねこれ
613デフォルトの名無しさん
2019/12/23(月) 15:52:08.05ID:Losi+wwQ 難癖つけたいんなら、具体的に問題を指摘しろや
614デフォルトの名無しさん
2019/12/23(月) 15:54:08.35ID:qAO2lZtX Windowsには
1.ハードリンク
2.ジャンクション
3.あほなシンボリックリンク
4.だるいシンボリックリンク
がある
1.ハードリンク
2.ジャンクション
3.あほなシンボリックリンク
4.だるいシンボリックリンク
がある
615デフォルトの名無しさん
2019/12/23(月) 16:12:25.30ID:IO6RyZUn >>611
すまんが、/cygdrive以下だけ動かない、というのは間違いだった。
動作としては、シンボリックリンクを辿ることは出来るが、戻れない、というものだ。
本来はシンボリックリンクはカレントと共に使用される。
つまりD:/dev/debugがシンボリックリンクでそこにD:/devからcdして入ったら、 cd .. だとD:/devに戻って来れないといけない。
(シンボリックリンク先に入った時の元に戻る。他から入ったらそこに当然戻る)
これが出来ておらず、debugしかないディレクトリ(というものを作って渡しているのだと思う)に戻ってしまう。
だから下から上が参照出来ない。上から下は参照出来るし、
下から上でも自分に戻ってくるのなら参照出来る。(言葉だと分かりにくいが要するに以下が通る)
MyMachine@MyName /cygdrive/d/dev/debug
$ less ../debug/some_file
下から上でもファイル名の補完は出来るのでbash自体は動作してる。
なお cd ../.. とシンボリックリンクを跨いで2つ上がることは可能。
cdってbashのコマンドだっけ?だとして、やはりbash自体は動作してる。
bashから各アプリに渡す時に失敗しているか、cygwin1.dll自体が対応してないか、だと思う。
バグ報告してもいいけど、それ以前に64bit環境の動作を確かめてからでないとウザがられる。
というわけで普段から64bit環境で使っている人がいたら試してみてくれ。
>>612
いや完全にシンボリックリンクだよ。
ln -s と使い勝手は同じ。
すまんが、/cygdrive以下だけ動かない、というのは間違いだった。
動作としては、シンボリックリンクを辿ることは出来るが、戻れない、というものだ。
本来はシンボリックリンクはカレントと共に使用される。
つまりD:/dev/debugがシンボリックリンクでそこにD:/devからcdして入ったら、 cd .. だとD:/devに戻って来れないといけない。
(シンボリックリンク先に入った時の元に戻る。他から入ったらそこに当然戻る)
これが出来ておらず、debugしかないディレクトリ(というものを作って渡しているのだと思う)に戻ってしまう。
だから下から上が参照出来ない。上から下は参照出来るし、
下から上でも自分に戻ってくるのなら参照出来る。(言葉だと分かりにくいが要するに以下が通る)
MyMachine@MyName /cygdrive/d/dev/debug
$ less ../debug/some_file
下から上でもファイル名の補完は出来るのでbash自体は動作してる。
なお cd ../.. とシンボリックリンクを跨いで2つ上がることは可能。
cdってbashのコマンドだっけ?だとして、やはりbash自体は動作してる。
bashから各アプリに渡す時に失敗しているか、cygwin1.dll自体が対応してないか、だと思う。
バグ報告してもいいけど、それ以前に64bit環境の動作を確かめてからでないとウザがられる。
というわけで普段から64bit環境で使っている人がいたら試してみてくれ。
>>612
いや完全にシンボリックリンクだよ。
ln -s と使い勝手は同じ。
616デフォルトの名無しさん
2019/12/23(月) 16:26:38.22ID:CGg4xw4r cygwinはもう永眠させてやれ
WSLに乗っ取られた
WSLに乗っ取られた
617デフォルトの名無しさん
2019/12/23(月) 18:46:28.73ID:wtBUbgEZ >>612
黙れ!
黙れ!
618デフォルトの名無しさん
2019/12/23(月) 22:27:33.69ID:nMe23UdH >>615
何をしようとしているか大体分かった。
・/cygdrive/d/dev/debug はシンボリックリンクで /cygdrive/d/test/debug を指すと仮定
・/cygdrive/d/dev/some_file があると仮定
このとき
・まずcd /cygdrive/d/dev/debugする
・次にcp ../some_file .するとファイルが無いと言われる
ということだと思う。もしそうならそれがUNIX系では普通。LinuxやMacでもそうなる。
これは、cdした時点で既にカレントディレクトリが/cygdrive/d/test/debugに移っているからで、cpは/cygdrive/d/test/some_fileを読もうとしているために起こる。つまり
>本来はシンボリックリンクはカレントと共に使用される。
がUNIX的には正しくない。
実際の挙動としては、
・UNIXの場合、カーネル的にはカレントディレクトリはあくまでもディレクトリで、シンボリックリンクをパスの途中に含むことはできない
・cd ..でもといたディレクトリに戻るのはbashがシンボリックリンクを本当のデイレクトリのようにエミュレーションしているから(set -Pで切れる)
・これは基本的には内部コマンドのcdやpwdに対してのみできることで、外部コマンドのcpやlessに対してはできない(引数の..が親ディレクトリの意味になるかはコマンドに依存するから、シェルが勝手に置き換えられない)
・シェルはPWD環境変数にシンボリックリンクを含むロジカルなカレントディレクトリを出力するので、これを見るようにすれば原理的には外部コマンドもエミユレーションに対応できる(危なっかしいので普通はしない)
WindowsのシンボリックリンクはUNIXと違ってOS自体がシンボリックリンクを含むカレントディレクトリを扱っているようだが、CYGWINはUNIXに合わせていると考えられる。
何をしようとしているか大体分かった。
・/cygdrive/d/dev/debug はシンボリックリンクで /cygdrive/d/test/debug を指すと仮定
・/cygdrive/d/dev/some_file があると仮定
このとき
・まずcd /cygdrive/d/dev/debugする
・次にcp ../some_file .するとファイルが無いと言われる
ということだと思う。もしそうならそれがUNIX系では普通。LinuxやMacでもそうなる。
これは、cdした時点で既にカレントディレクトリが/cygdrive/d/test/debugに移っているからで、cpは/cygdrive/d/test/some_fileを読もうとしているために起こる。つまり
>本来はシンボリックリンクはカレントと共に使用される。
がUNIX的には正しくない。
実際の挙動としては、
・UNIXの場合、カーネル的にはカレントディレクトリはあくまでもディレクトリで、シンボリックリンクをパスの途中に含むことはできない
・cd ..でもといたディレクトリに戻るのはbashがシンボリックリンクを本当のデイレクトリのようにエミュレーションしているから(set -Pで切れる)
・これは基本的には内部コマンドのcdやpwdに対してのみできることで、外部コマンドのcpやlessに対してはできない(引数の..が親ディレクトリの意味になるかはコマンドに依存するから、シェルが勝手に置き換えられない)
・シェルはPWD環境変数にシンボリックリンクを含むロジカルなカレントディレクトリを出力するので、これを見るようにすれば原理的には外部コマンドもエミユレーションに対応できる(危なっかしいので普通はしない)
WindowsのシンボリックリンクはUNIXと違ってOS自体がシンボリックリンクを含むカレントディレクトリを扱っているようだが、CYGWINはUNIXに合わせていると考えられる。
619デフォルトの名無しさん
2019/12/23(月) 23:39:27.27ID:IO6RyZUn >>618
こちらの状況は正しく伝わっており、君の言っていることも正しい。
こちらも615を書いた後、遠い昔にシンボリックリンク周りでトラブった記憶があり、
あれはなんだったかな?と思っていたところだった。
つまりbashで上手く誤魔化していてくれているわけだ。
ではtcshは?と確認したが、こちらもsymlinks変数で誤魔化し方を調整出来るようになっている。
https://linuxjm.osdn.jp/html/tcsh/man1/tcsh.1.html
結果、Cygwinとしては仕様通り、UNIXは糞仕様(≒仕様バグ)だな。
突っ込む必要はないと思うが、
> (引数の..が親ディレクトリの意味になるかはコマンドに依存するから、シェルが勝手に置き換えられない)
これはよく分からない。
bashがコマンドに引数を渡すときにあらかじめシンボリックリンク周りを解決していたら、どういう問題が発生する?
というかtcshだとsymlinks=expandに設定したらそうなるらしい。
今回で言えば、
MyMachine@MyName /cygdrive/d/dev/debug
$ cp ../some_file .
を cp /cygdrive/d/dev/somefile /cygdrive/d/dev/debug として実行すれば問題ないはず。
(.を展開する必要はないかもだが)
既存シェルスクリプトの互換性が無くなるだけなら仕様バグでした、残念でした、でしかなく、
後発のwindowsでは修正されているということになる。
シンボリックリンクを辿って、その上の「論理的ではない、物理的上位ディレクトリ」を辿る必要がある使い方なんて無いはず。
なお上記man of tcshのsymlinksの最後の
> > cd ".."; echo $cwd
> /tmp/from
> > /bin/echo ..
> /tmp/to ←これがよく分からん、/tmpではなくて?あるいはコマンドが .. ではなく /bin/echo . なら納得だが
> > /bin/echo ".."
> ..
分かれば出来れば解説よろしく。
こちらの状況は正しく伝わっており、君の言っていることも正しい。
こちらも615を書いた後、遠い昔にシンボリックリンク周りでトラブった記憶があり、
あれはなんだったかな?と思っていたところだった。
つまりbashで上手く誤魔化していてくれているわけだ。
ではtcshは?と確認したが、こちらもsymlinks変数で誤魔化し方を調整出来るようになっている。
https://linuxjm.osdn.jp/html/tcsh/man1/tcsh.1.html
結果、Cygwinとしては仕様通り、UNIXは糞仕様(≒仕様バグ)だな。
突っ込む必要はないと思うが、
> (引数の..が親ディレクトリの意味になるかはコマンドに依存するから、シェルが勝手に置き換えられない)
これはよく分からない。
bashがコマンドに引数を渡すときにあらかじめシンボリックリンク周りを解決していたら、どういう問題が発生する?
というかtcshだとsymlinks=expandに設定したらそうなるらしい。
今回で言えば、
MyMachine@MyName /cygdrive/d/dev/debug
$ cp ../some_file .
を cp /cygdrive/d/dev/somefile /cygdrive/d/dev/debug として実行すれば問題ないはず。
(.を展開する必要はないかもだが)
既存シェルスクリプトの互換性が無くなるだけなら仕様バグでした、残念でした、でしかなく、
後発のwindowsでは修正されているということになる。
シンボリックリンクを辿って、その上の「論理的ではない、物理的上位ディレクトリ」を辿る必要がある使い方なんて無いはず。
なお上記man of tcshのsymlinksの最後の
> > cd ".."; echo $cwd
> /tmp/from
> > /bin/echo ..
> /tmp/to ←これがよく分からん、/tmpではなくて?あるいはコマンドが .. ではなく /bin/echo . なら納得だが
> > /bin/echo ".."
> ..
分かれば出来れば解説よろしく。
620デフォルトの名無しさん
2019/12/23(月) 23:43:56.19ID:gENEPh5i WindowsがーではなくCygwinの問題でしょ
WindowsはWindowsの仕様でやってる。それがなんであれ正しい仕様
Cygwinがエミュレート機能をすべて行ってる
問題があるならそれはCygwinの問題
WSLならその問題も解決してるだろうさ
WindowsはWindowsの仕様でやってる。それがなんであれ正しい仕様
Cygwinがエミュレート機能をすべて行ってる
問題があるならそれはCygwinの問題
WSLならその問題も解決してるだろうさ
621デフォルトの名無しさん
2019/12/23(月) 23:58:57.35ID:IO6RyZUn >>620
それは違う。
Cygwinはエミュレーションレイヤーを提供しており、つまりUnixのシステムコールを受け付けているだけ。
だから仕様としてUnixと同じ動作になる。
詳しくはWikiなり本家なり読めばいい。
問題はUnixの糞仕様が今も修正されずそのままbash等で誤魔化され続け、
windowsでは修正された?為に動作が異なっている事による。
ただこれをCygwinで修正することは出来ないし、するべき事柄でもない。
それは違う。
Cygwinはエミュレーションレイヤーを提供しており、つまりUnixのシステムコールを受け付けているだけ。
だから仕様としてUnixと同じ動作になる。
詳しくはWikiなり本家なり読めばいい。
問題はUnixの糞仕様が今も修正されずそのままbash等で誤魔化され続け、
windowsでは修正された?為に動作が異なっている事による。
ただこれをCygwinで修正することは出来ないし、するべき事柄でもない。
622デフォルトの名無しさん
2019/12/24(火) 00:05:26.55ID:8h2rOUkn > Cygwinはエミュレーションレイヤーを提供しており、つまりUnixのシステムコールを受け付けているだけ。
ただしい
? だから仕様としてUnixと同じ動作になる。
○ 仕様としてUnixと同じ動作になるように目指すべきだが、できてない
ただしい
? だから仕様としてUnixと同じ動作になる。
○ 仕様としてUnixと同じ動作になるように目指すべきだが、できてない
623デフォルトの名無しさん
2019/12/24(火) 00:06:45.59ID:8h2rOUkn なんか文字化けする方法のバツを記録してるな。これでいいか?
× だから仕様としてUnixと同じ動作になる。
○ 仕様としてUnixと同じ動作になるように目指すべきだが、できてない
× だから仕様としてUnixと同じ動作になる。
○ 仕様としてUnixと同じ動作になるように目指すべきだが、できてない
624デフォルトの名無しさん
2019/12/24(火) 00:22:04.30ID:6GYTbaHl >>620
なおWSLは理屈上はUnixの動作になるはず。
ただしbash等を見る限り既知の問題だから対策出来そうではあるが、
バイナリ互換なので現実的に無理だと思う。
(もちろんwindows専用bashを用意すればいいが、それだと既存のシェルスクリプトが動かなくなる。
といってもそれで問題が発生するような奴はWSLなんて使わずDockerだと思うが)
が、まあ、俺に関して言えば、
問題の詳細は判明し、特段問題ないから当面はCygwinを使う。
(すまんがNGに当たっているようなのでバラバラにして投稿する)
なおWSLは理屈上はUnixの動作になるはず。
ただしbash等を見る限り既知の問題だから対策出来そうではあるが、
バイナリ互換なので現実的に無理だと思う。
(もちろんwindows専用bashを用意すればいいが、それだと既存のシェルスクリプトが動かなくなる。
といってもそれで問題が発生するような奴はWSLなんて使わずDockerだと思うが)
が、まあ、俺に関して言えば、
問題の詳細は判明し、特段問題ないから当面はCygwinを使う。
(すまんがNGに当たっているようなのでバラバラにして投稿する)
625デフォルトの名無しさん
2019/12/24(火) 00:23:19.80ID:6GYTbaHl (すまんがNGに当たっているようなのでバラバラにして投稿する)
>>623
> ○ 仕様としてUnixと同じ動作になるように目指すべきだが、できてない
違う。そこを目指してない。
CygwinはUnixのシステムコールをcygwin1.dllが受け付けることにより、
GNU等が書き溜めた膨大なUnix向けCソースをそのまま動作させることを目標としている。
結果、ありとあらゆるUnixのツールがcygwin上では動くので、大成功している。
>>623
> ○ 仕様としてUnixと同じ動作になるように目指すべきだが、できてない
違う。そこを目指してない。
CygwinはUnixのシステムコールをcygwin1.dllが受け付けることにより、
GNU等が書き溜めた膨大なUnix向けCソースをそのまま動作させることを目標としている。
結果、ありとあらゆるUnixのツールがcygwin上では動くので、大成功している。
626デフォルトの名無しさん
2019/12/24(火) 00:24:32.17ID:6GYTbaHl >>623続き
windowsのCMD。EXEのエミュレーションなんて必要ないし、目指してもいない。
本家でも読め。
そして認識も間違っている。CygwinはUnixと同じ動作になってる。つまり、「できてる」
windowsのCMD。EXEのエミュレーションなんて必要ないし、目指してもいない。
本家でも読め。
そして認識も間違っている。CygwinはUnixと同じ動作になってる。つまり、「できてる」
627デフォルトの名無しさん
2019/12/24(火) 00:29:23.48ID:d/S5Qnsu >>619
・tcshのmanは間違っているだけだと思う。実際試したら想定通り/tmpになった。
・シェルが勝手に置き換えるべきではないというのは、単にgrep ..とかの動作が今までと変わって直感的でなくなるあたりの問題。.や..の置き換えの仕様とエスケープやクォートの仕様を十分理解すればまあそんなに困らないとは感じる。
・tcshのmanは間違っているだけだと思う。実際試したら想定通り/tmpになった。
・シェルが勝手に置き換えるべきではないというのは、単にgrep ..とかの動作が今までと変わって直感的でなくなるあたりの問題。.や..の置き換えの仕様とエスケープやクォートの仕様を十分理解すればまあそんなに困らないとは感じる。
628デフォルトの名無しさん
2019/12/24(火) 00:49:31.91ID:6GYTbaHl >>627
おおサンクス、手元にこなれた環境がないので助かる。
しかし今更このレベルの誤字ってあるかね?
まあtcshなんて今時誰も使ってないが、他のマニュアルもそうなってるし。
https://linux.die.net/man/1/tcsh
とはいえ実行結果がそうなのならそれが一番信憑性があるが。
Unixは今更直せないで行くのだろうけど、WSLの際にMS内部ではどうするか検討してるだろうね。
WSL推しの人はどうぞ動作報告よろしく。
おおサンクス、手元にこなれた環境がないので助かる。
しかし今更このレベルの誤字ってあるかね?
まあtcshなんて今時誰も使ってないが、他のマニュアルもそうなってるし。
https://linux.die.net/man/1/tcsh
とはいえ実行結果がそうなのならそれが一番信憑性があるが。
Unixは今更直せないで行くのだろうけど、WSLの際にMS内部ではどうするか検討してるだろうね。
WSL推しの人はどうぞ動作報告よろしく。
629デフォルトの名無しさん
2019/12/24(火) 15:52:35.51ID:IBUEMR4t630デフォルトの名無しさん
2020/01/05(日) 00:06:31.37ID:RxmL5T69 >>627
ばーーーか
ばーーーか
632デフォルトの名無しさん
2020/03/07(土) 09:24:50.59ID:6t68C04E このところ、MSYS2 の pacman を実行するとエラーが出るな
サーバー不調なん?それとも pacman がバグった?
一度アンインストールして最初から入れなおしてもダメやった・・・
サーバー不調なん?それとも pacman がバグった?
一度アンインストールして最初から入れなおしてもダメやった・・・
633デフォルトの名無しさん
2020/03/11(水) 21:27:12.49ID:o+x7iIJI いつの間にか直ってた
やっぱり、サーバーが不調なだけだったのか・・・
やっぱり、サーバーが不調なだけだったのか・・・
634デフォルトの名無しさん
2020/03/12(木) 11:58:54.03ID:MzPDqAwN 自分の回線を疑う気は皆無か
635デフォルトの名無しさん
2020/03/12(木) 19:21:51.59ID:TmXPZpmc 自分の回線だけだったら書き込まないが・・・
636デフォルトの名無しさん
2020/03/25(水) 09:30:19.85ID:C+0WfFNh0 回線があまりに遅いと向こうからお断りしてくるのでは
637デフォルトの名無しさん
2020/03/28(土) 13:48:39.21ID:Mtf58BEo サーバー不調なだけだぞ、公式でも話題になってた
https://github.com/msys2/MINGW-packages/issues/6256
https://github.com/msys2/MINGW-packages/issues/6256
638デフォルトの名無しさん
2020/04/02(木) 18:00:43.50ID:1pp0Yvcl 今更
pacmanでfork errorでまくったので見切った。
wslでLinux入れてmingw64クロスコンパイルしている。
wslのコンソールでwindowsバイナリもそのまま動くし良い。
cygwinやmsysみたいにcygwin, msysバイナリとwindowsバイナリが混在することの混乱もないしさらに良い
pacmanでfork errorでまくったので見切った。
wslでLinux入れてmingw64クロスコンパイルしている。
wslのコンソールでwindowsバイナリもそのまま動くし良い。
cygwinやmsysみたいにcygwin, msysバイナリとwindowsバイナリが混在することの混乱もないしさらに良い
639デフォルトの名無しさん
2020/04/03(金) 04:00:25.48ID:FV+QUjkb GCC 9.3を早く出してくれ
640デフォルトの名無しさん
2020/04/03(金) 09:51:54.29ID:yEeayoKI pacmanでfork errorの一番の解決策は
ちゃんと出てきたメッセージを読むこと
これに尽きる
638がそうなのかは知らんが
ちゃんと出てきたメッセージを読むこと
これに尽きる
638がそうなのかは知らんが
641デフォルトの名無しさん
2020/04/05(日) 22:38:22.52ID:bwZ5xk1F WSLよりMSYS2の方が更新早い?
642デフォルトの名無しさん
2020/04/06(月) 09:55:13.35ID:m+LKHOnj WSLで使うディストリビューション(ArchとかUbuntuとか)によるでしょう
共通して言えるのはLinuxではセキュリティ修正の取り込みは早い
共通して言えるのはLinuxではセキュリティ修正の取り込みは早い
643デフォルトの名無しさん
2020/04/06(月) 20:27:42.43ID:O5iO/eDc WSL は色々なディストリビューションが選べるんですね
644デフォルトの名無しさん
2020/04/19(日) 17:57:31.18ID:UEW9MHEw645デフォルトの名無しさん
2020/04/19(日) 22:00:29.69ID:+AizyWB9 WSLがある以上、MSYSのメンテはもう廃れるだろうな。
意味ねーし。
cygwinはXのためだけに存在する
意味ねーし。
cygwinはXのためだけに存在する
646デフォルトの名無しさん
2020/04/19(日) 23:35:15.05ID:UEW9MHEw >>645
えっ、そんなのあるの?
えっ、そんなのあるの?
647デフォルトの名無しさん
2020/04/20(月) 01:29:10.82ID:VYi0JRSU そ、そんな〜(´・ω・`)
648デフォルトの名無しさん
2020/04/20(月) 04:16:21.28ID:DIgHaEzI 更新が止まってしまった
649デフォルトの名無しさん
2020/04/20(月) 04:41:27.35ID:H+0bMHyU >>645
cygwinは便利だ。
cygwinは便利だ。
650デフォルトの名無しさん
2020/04/20(月) 07:25:19.48ID:vhP2C7pa0 マジかよシグウィン窓から投げ捨てた
WSL派になります
WSL派になります
651デフォルトの名無しさん
2020/04/20(月) 08:37:44.26ID:iSOfvkhv DLLだけで動くのが便利なときもあるが、日々の生活はWSLだね
652デフォルトの名無しさん
2020/04/20(月) 09:12:16.95ID:aqwTNz7b Windows 10, WSL, Ubuntu 18.04 で、
VSCode の拡張機能、Remote WSL も使う
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた
yarn は、Windows側に入れて、WSL から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト
anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える。
~/.bashrc に、下の2行を追加するだけで、各言語ごとに追加しないでも良い
export PATH="$HOME/.anyenv/bin:$PATH"
eval "$(anyenv init -)"
VSCode の拡張機能、Remote WSL も使う
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた
yarn は、Windows側に入れて、WSL から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト
anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える。
~/.bashrc に、下の2行を追加するだけで、各言語ごとに追加しないでも良い
export PATH="$HOME/.anyenv/bin:$PATH"
eval "$(anyenv init -)"
653デフォルトの名無しさん
2020/04/20(月) 09:13:30.71ID:lEczCUui MSYS+MinGW、仮想マシン+Linuxって感じでWSLの入る余地がない
WSL+MinGWツールチェーンにすれば仮想マシンすら必要ないって考えもあるけど
やっぱり仮想マシンは手放せないからWindows側はMSYSでいいやってなる
WSL+MinGWツールチェーンにすれば仮想マシンすら必要ないって考えもあるけど
やっぱり仮想マシンは手放せないからWindows側はMSYSでいいやってなる
654デフォルトの名無しさん
2020/04/20(月) 10:24:18.82ID:HdM6J8YZ >>653
同じく
同じく
655デフォルトの名無しさん
2020/04/20(月) 13:58:21.58ID:2UEzrf8e656デフォルトの名無しさん
2020/04/20(月) 14:00:46.58ID:2UEzrf8e 仮想マシンは手放せないけど、仮想マシンはほぼテスト環境になった
作ったアプリを動かすための環境
普段の開発でテストのためだけの環境を使う気にならない
起動重いしメモリ食うし
作ったアプリを動かすための環境
普段の開発でテストのためだけの環境を使う気にならない
起動重いしメモリ食うし
657デフォルトの名無しさん
2020/04/20(月) 14:10:17.96ID:X6dUog3k 起動したままで良い
メモリ喰うのは諦めろ
メモリ喰うのは諦めろ
レスを投稿する
ニュース
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★10 [ぐれ★]
- トランプ氏「台湾侵攻すれば北京爆撃」“過激予告発言”報道がXで再燃「高市氏の1億倍やばい」 [七波羅探題★]
- 【維新国会議員が800万円超の公金を使用】藤田文武共同代表が印刷代569万円を維新市議の「身内企業に支出」していた! [ぐれ★]
- 【ペルソナ・ノン・グラータ】中国総領事の早期国外退去を首相に要請へ 自民・保守系グループ「日本の尊厳と国益を護(まも)る会」 [ぐれ★]
- 「母の部屋に安倍氏が表紙の機関誌が」「(安倍氏が被害者なのは)不思議に思いませんでした」山上被告の妹が証言 ★2 [おっさん友の会★]
- 【(・(ェ)・)】収穫前のリンゴ2トン!丸々と太ったクマがリンゴ畑に連日現れ…一晩中居座る「こんなに食べられたのは初めて」長野・上田 [ぐれ★]
- 安倍晋三さん、完全にチェックアウトしてしまう…「母の部屋に安倍元首相が表紙の旧統一教会の機関誌があった」 [405019576]
- 中国報道、高市首相を「毒苗」と中傷😡 [399259198]
- 【高市悲報】🇨🇳中国「日本への報復措置? 他にいくらでも方法はある。 まだまだやめないよ」 😨😱 [485983549]
- 【悲報】日本、パンダ0にwwwwwwwwwwww高市さんありがとう🐼 [271912485]
- 高市早苗、約1ヶ月でドル円・10円円安を達成 [256556981]
- 高市さん「自賠責を勝手に他の財源に充てるな、返せ」財務省さん、しぶしぶ5700億円を返還 [881878332]
