1 名前:デフォルトの名無しさん [2014/09/23(火) 00:20:11.40 ID:G97CLCj1.net] Windows上で動作するフリーの開発環境 CygwinとMinGWに関する相談スレッドです。 過去スレ: Cygwin + MinGW + GCC 相談室 Part 7 peace.2ch.net/test/read.cgi/tech/1357019230/ Cygwin + MinGW + GCC 相談室 Part 6 toro.2ch.net/test/read.cgi/tech/1304609116/ Cygwin + MinGW + GCC 相談室 Part 5 hibari.2ch.net/test/read.cgi/tech/1269400706/ Cygwin + MinGW + GCC 相談室 Part 4 pc12.2ch.net/test/read.cgi/tech/1221233882/ cygwin + mingwn + gcc 相談室 Part3 pc11.2ch.net/test/read.cgi/tech/1177944767/ cygwin + mingwn + gcc 相談室 Part2 pc11.2ch.net/test/read.cgi/tech/1126103347/ cygwin + mingwn + gcc 相談室 pc8.2ch.net/test/read.cgi/tech/1058134693/ 関連サイト: Cygwin www.cygwin.com/ MinGW www.mingw.org/ 関連スレッド: GCCについて part10 toro.2ch.net/test/read.cgi/tech/1315026784/
528 名前:デフォルトの名無しさん [2019/06/15(土) 11:12:22.87 ID:Z5/LYv7k.net] Cognac Tough Lamborghini を思い出す
529 名前:デフォルトの名無しさん mailto:sage [2019/06/20(木) 22:49:09.67 ID:saP3r1IF.net] クンタッシ
530 名前:デフォルトの名無しさん [2019/06/22(土) 19:12:03.45 ID:UYyu+IU/.net] >>528 ぶぁーか
531 名前:デフォルトの名無しさん [2019/06/23(日) 05:49:44.99 ID:g5igmDJr.net] MinGW更新が滞っています
532 名前:デフォルトの名無しさん mailto:sage [2019/06/24(月) 05:27:39.62 ID:bdPLxrDs.net] >>531 MinGW-W64 project のやつは滞ってるけど、 MSYS2 project のやつ(pacmanで入れるやつ)は滞ってないよ(9.1.0)。
533 名前:デフォルトの名無しさん mailto:sage [2019/06/24(月) 12:32:30.26 ID:INmKbVms.net] msys2もWSL2で役目終了かな
534 名前:デフォルトの名無しさん mailto:sage [2019/06/24(月) 16:47:30.43 ID:Qf6r6oPW.net] そして焼け野原
535 名前:デフォルトの名無しさん [2019/06/25(火) 20:17:15.80 ID:Cgc4J/db.net] >>534 一言余計なんだよカス
536 名前:デフォルトの名無しさん mailto:sage [2019/06/25(火) 20:43:23.33 ID:mNuvBnC/.net] 効いてるw
537 名前:デフォルトの名無しさん mailto:sage [2019/06/25(火) 21:35:27.64 ID:0CG+TeYQ.net] https://gcc-mcf.lhmouse.com/?C=M&O=D ここちゃんとチェックしてるか?9.1.1まで出てるぞ
538 名前:デフォルトの名無しさん mailto:sage [2019/06/26(水) 01:21:30.62 ID:uaiF8BI0.net] >>537 普通チェックしないし使わない
539 名前:デフォルトの名無しさん mailto:sage [2019/07/02(火) 16:03:24.73 ID:+WA62fsw.net] >>538 効いてるw
540 名前:デフォルトの名無しさん mailto:sage [2019/08/05(月) 11:53:08.29 ID:r6BvniMN.net] clang で良いんじゃないの? Google もGCC からclang に切り替えたし。
541 名前:デフォルトの名無しさん mailto:sage [2019/08/13(火) 11:23:23.39 ID:5isOnGEb.net] gcc-9.2
542 名前:デフォルトの名無しさん mailto:sage [2019/08/14(水) 15:59:31.43 ID:cSlSK8mm.net] > warning: hoge.hpp.gch/fuga.gch: had text segment at different address 9.2でこんなエラーが出るようになってPCHが効かない。ビルド時間が3倍に。 > cc1plus.exe: warning: '-Werror=' argument '-Werror=hoge-fuga' is not valid for C++ あとこんな警告が大量に出るようになって邪魔。
543 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 15:18:40.97 ID:4DZMx7ke.net] MinGWで作ったバイナリ、コマンドプロンプトで実行するとすごい遅い 一回実行するとキャッシュでもされるのかそれ以降の実行はわりと速い ひどいときはプロセス間通信を使ってるバイナリで実行から終了まで7秒とかかかったりする Gitとかはコマンドプロンプトで実行してもすぐに実行されるんだけど、何が違うんだろう ウィルスソフトのリアルタイムスキャンに時間がかかってるのかと思って、問題のバイナリの除外設定とかしてみたけど、効果なかった 問題のバイナリはプロセス間通信を使ってるから、このプロセス間通信がボトルネックになってるのかなぁ WindowsのCreateProcessはLinuxのforkに比べるとめちゃくちゃ遅いらしいし
544 名前:デフォルトの名無しさん [2019/08/20(火) 15:20:15.93 ID:zlJnj2O9.net] cmd からじゃなくて mintty から実行しても遅いか?
545 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 15:35:04.29 ID:4DZMx7ke.net] >>544 試してないけど試してみます
546 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 15:50:21.30 ID:KG2FXNu0.net] mkpasswdとかmkgroupとかやっとかないとあかんのじゃなかったっけ
547 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 17:27:25.95 ID:4DZMx7ke.net] >>544 mintty, MSYSでは動作が速かったです cmd特有の「初回起動だけ遅い」というのはありませんでした powershellでも試してみます >>546 cmdでも実行は出来てるんですが、なんか初回実行だけ遅いんです 初回以降は速くて、しばらく放置してまた実行すると遅くなってます
548 名前:デフォルトの名無しさん [2019/08/20(火) 17:37:17.04 ID:zlJnj2O9.net] キャッシュしてるとしたら socks の dll かな
549 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 17:51:30.05 ID:ITb7FkqQ.net] ログ吐かせてどこにネックがあるのかみてみないと
550 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 17:19:04.83 ID:iGK2Kp/R.net] 雑な事いえばminttyやMSYSを起動すると、起動した時点でMinGWのdllが 読み込まれるのでコマンド起動遅くならないのでは
551 名前:デフォルトの名無しさん [2019/08/21(水) 17:33:03.25 ID:ur92HW83.net] それならそれで解決とするか
552 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 23:34:12.77 ID:L4bPYRCx.net] dllの読み込みに時間かかってるってことですか なるほど ということはMinGWでコンパイルしたバイナリ全般に現れる問題っぽいですね
553 名前:デフォルトの名無しさん mailto:sage [2019/08/22(木) 04:38:34.97 ID:Rc8J28Ob.net] コマンドプロンプトで実行するようなプログラムは Windowsネイティブアプリにしろよw
554 名前:デフォルトの名無しさん mailto:sage [2019/08/22(木) 05:37:28.68 ID:rzNCVH2V.net] MinGWで作ったら余程変態技を使わない限りWindowsネイティブアプリ
555 名前:デフォルトの名無しさん mailto:sage [2019/08/22(木) 06:10:29.02 ID:dqAPG5D5.net] >>553 最初はLinuxで開発してて、それからWindows用に移植したんですよ で、MinGWが手軽だったからMinGW使ってたんだけど
556 名前:デフォルトの名無しさん [2019/08/22(木) 10:15:45.06 ID:xQsiKIbM.net] そんな用途には tdmgcc64 おすすめ
557 名前:デフォルトの名無しさん mailto:sage [2019/08/23(金) 03:35:27.20 ID:jZ19Qjup.net] ググっても一件しか出なかった gccなのはわかる
558 名前:デフォルトの名無しさん [2019/08/23(金) 15:09:01.75 ID:Zx6EO+xk.net] これやろ https://ja.wikipedia.org/wiki/TDM-GCC tdm-gcc.tdragon.net/download
559 名前:デフォルトの名無しさん mailto:sage [2019/08/23(金) 18:17:23.56 ID:jZ19Qjup.net] >>558 おお、ありがとう ダウンロードしてみる
560 名前:デフォルトの名無しさん [2019/08/23(金) 18:24:15.33 ID:aZS2aOxa.net] 今はこっちが良くね https://text.baldanders.info/remark/2018/03/mingw-w64/
561 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 06:55:34.51 ID:Glqz8i+r.net] TDM-GCCでビルドしたら遅いの無くなったかもしれない(*´Д`)!!! >>556 >>558 もう少し様子見るけど、まじでありがとう >>560 これはMinGWとは違うの?
562 名前:デフォルトの名無しさん [2019/08/24(土) 09:36:31.35 ID:u2q8uNB0.net] staticになってるだけというオチだったらわろす
563 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 14:59:08.43 ID:H4K4vAej.net] ただ単に -static -O3 -mtune=skylake を指定していないだけ じゃねえだろうな?
564 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 17:29:38.98 ID:Glqz8i+r.net] staticオプションは特に指定しませんが…… dllの読み込みが原因だとしたらstaticにすれば解決という話ですか そういう発想はなかった >>563 --mtune=skylakeってなんですか?
565 名前:デフォルトの名無しさん [2019/08/24(土) 17:48:35.57 ID:u2q8uNB0.net] DLLよりstaticが速いとか都市伝説
566 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 16:54:37.16 ID:z6AAmiat.net] >>564 -O3はコードの最適化を3レベル(あるいはタイプ3)で行う 実際に何を行っているかはコンパイランの説明を読まないと分からない -mtune=skylakeはコードをIntel CPUのSkyLakeアーキテクチャで最適な形にする どちらも記述したコードを実行形式にするときに最適化を行うオプションなので、 非常に大きなコードを書いた際や似たような処理を繰り返すコードを書いている際に 指定すると早くなる事もある(ライブラリに含まれるコードは最適化されない) >>565 都市伝説ってこともない 関数A、B、C、Dが含まれるライブラリlibhogeが存在する場合、自分のプログラムで 関数BとDだけを使っていると、ダイナミックリンクの場合自分のプログラムの実行 コードに加えてすべての関数が含まれるlibhoge.dll全体を読み込む必要がある スタックリンクの場合には自分のプログラムの実行コードに加えてlibhoge.aから抽出した 関数BとDのコードを読み込むだけなので関数AとCのコードを読み込まない分ロードが 早くなる可能性は高くなる ただし、実際問題としてはdllを一回読み込めばキャッシュからなくならない限り読み込む 必要がない+Windowsのプログラミングで使用するライブラリで基本的なものは通常 システムを起動した時点でキャッシュされていることに加えて、Windowsでプログラムを 動かすために必要な関数郡はかなりの量になる事が多いのでスタティックにリンクすると すでにキャッシュされている関数郡を使わずに、必要な関数郡を含んだ大きなコードを 読み込む必要があるのでスタティックリンクの方が起動が遅くなるって本末転倒な事態が 発生することもある MinGWの場合にはWindows一般では使わないライブラリを使用するので1回目の 起動時には必要なdllを読み込むよりは、必要な関数のみをリンクしたスタティックな 状態の方が早い場合があるかもってこと
567 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 19:02:38.36 ID:7s5pz20M.net] もっと短く
568 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 23:51:01.48 ID:V1f8d4H1.net] >>566 ということは--static -O3 -mtune=skylakeでビルドすれば起動が早くなるかもということですか 時間があるときに試したいと思いますm(_ _)m
569 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 01:28:47.93 ID:K2zp8I6+.net] やっぱり名前解決の問題が大きいんすよ ライブラリの読み込みだけでは説明できない
570 名前:デフォルトの名無しさん [2019/08/26(月) 14:11:24.03 ID:T0vtMl8v.net] >スタックリンクの場合には自分のプログラムの実行コードに加えてlibhoge.aから抽出した >関数BとDのコードを読み込むだけなので関数AとCのコードを読み込まない分ロードが これ関数単位でソース分けてあって 一関数が一objになってる場合だけだよな
571 名前:デフォルトの名無しさん [2019/08/26(月) 14:11:24.09 ID:T0vtMl8v.net] >スタックリンクの場合には自分のプログラムの実行コードに加えてlibhoge.aから抽出した >関数BとDのコードを読み込むだけなので関数AとCのコードを読み込まない分ロードが これ関数単位でソース分けてあって 一関数が一objになってる場合だけだよな
572 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 17:43:39.53 ID:eYWa871J.net] dll読み込みってそんなに重いかな? なんか別のところで時間がかかっていそうな感じ。
573 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 21:44:29.54 ID:CEMf0Y7L.net] >>570-571 MinGWの場合はそうかな。確かMinGWでは--gc-sectionsが効かなかったかと。 LTOで未使用関数が除去されるかもしれないけどバグが多いので試してない。
574 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 05:30:30.81 ID:FSIINwco.net] >>568 でビルドしてみました 様子見します -O3は、前にビルドしたときにプログラムがうまく動作しないことがあったんですよね -O0にすると正常に動作したんですけど
575 名前:デフォルトの名無しさん [2019/08/27(火) 09:41:49.02 ID:NZJyfwBK.net] -O3に完璧を求める方が可笑しい
576 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 11:08:45.95 ID:NDEdv6OD.net] そこで-Ofastですよ
577 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 12:32:02.21 ID:j4wzaSFP.net] -O3と-O0で挙動が違うのは、不定の値を使っているとか、 未規定の動作に依存しているとか、そういう系だぞ まれにコンパイラのバグということもあるが大抵てめーが悪い
578 名前:デフォルトの名無しさん [2019/08/28(水) 17:10:08.53 ID:w9RtsrXP.net] VCで造られたdllをmingwのgccで使いたいです hoge.dll と hoge.lib は有るのですが libhoge.a がありません あと hoge.c とかのソースファイルもありません hoge.def は hoge.dll から作れるのですが hoge.lib から libhoge.a を作るのはどうすればよかったか思い出せません
579 名前:デフォルトの名無しさん [2019/08/28(水) 17:25:07.66 ID:iAy2zRVx.net] 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 しらんけど
580 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 17:45:16.06 ID:4qorfKL6.net] 実際parallelstlをコンパイルするのはVCの方が楽だしな これを.aに変換したいと思っていたのでありがたいです
581 名前:デフォルトの名無しさん mailto:sage [2019/09/03(火) 16:24:26.27 ID:fy59PR5b.net] 9.2.0 Rev2 でPCHのエラーが出なくなった。
582 名前:デフォルトの名無しさん [2019/09/13(金) 12:46:20.65 ID:wKEqF87n.net] 本物のWInネイティブアプリの起動はもっと速いのかもしれません。 MinGW+MSYS2がCygwinより速い理由が釈然としませんが、 forkがCygwinのものまんまよりは多少軽量だったりするんだろうか https://twitter.com/nullpo_head/status/905032098506915840 (deleted an unsolicited ad)
583 名前:デフォルトの名無しさん [2019/09/13(金) 12:48:07.35 ID:wKEqF87n.net] ビルド環境のまとめ i.loveruby.net/ja/rhg/cd/buildenv.png i.loveruby.net/ja/rhg/cd/win.html
584 名前:デフォルトの名無しさん mailto:sage [2019/09/13(金) 13:01:11.82 ID:hxTRiT39.net] mingwはその本物のネイティブとちゃうか
585 名前:デフォルトの名無しさん [2019/09/13(金) 15:13:51.93 ID:ud7Tmahn.net] cygwin の fork = native じゃなくて emu mingw の fork = あるんか?
586 名前:デフォルトの名無しさん mailto:sage [2019/09/13(金) 16:40:00.05 ID:08rV0d8/.net] MinGW+MSYS2がCygwinより速い理由は Cygwinはたとえ遅くなろうとも完璧なエミュレートを目指してるのに対して MinGW+MSYS2は目指してないから
587 名前:デフォルトの名無しさん mailto:sage [2019/09/13(金) 18:56:41.57 ID:2jKM3FP9.net] MSYS2は、Windowsネイティブアプリを作るための環境です。 Windowsネイティブアプリを作りましょう。
588 名前:デフォルトの名無しさん mailto:sage [2019/09/13(金) 19:47:41.41 ID:+NnovRbX.net] >>586 どういうことなの…
589 名前:デフォルトの名無しさん [2019/09/14(土) 10:05:32.62 ID:NwEptffo.net] fork の歴史 (windows の fork 含む) https://www.eelsgo.com/cs-CZ/article/fork%20windows https://support.microsoft.com/ja-jp/help/190351/how-to-spawn-console-processes-with-redirected-standard-handles
590 名前:デフォルトの名無しさん [2019/09/14(土) 10:32:34.60 ID:NwEptffo.net] なぜ今 fork が熱いのか https://mao.5ch.net/test/read.cgi/linux/1560665525/
591 名前:デフォルトの名無しさん [2019/09/14(土) 11:49:59.95 ID:mIZ3m5oP.net] www.kobore.net/diary_techno/?date=20180221 www.kobore.net/diary_techno/?date=0214 https://books.google.co.jp/books?id=NdmjDwAAQBAJ&pg=PT819&dq=NTDLL+RtlCloneUserProcess
592 名前:デフォルトの名無しさん [2019/09/15(日) 06:58:43.73 ID:zbVYZgVB.net] >>589 むりぽ https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/afdf1b68-1f3e-47f5-94cf-51e397afe073/cygwin-fork-and-rtlcloneuserprocess?forum=windowsgeneraldevelopmentissues
593 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 07:41:31.63 ID:WxowMW3Q.net] GMPって真面目にソースtarからビルドするしかないの? ビルド済みのバイナリですぐ使えるのがあれば欲しいんだけどcygwinのインストーラでチェック入れてもダメで、なんじゃこりゃってなってるんだけど。
594 名前:デフォルトの名無しさん [2019/10/02(水) 11:20:07.41 ID:55+aQRnY.net] https://stackoverflow.com/questions/19192963/are-there-any-recent-gmp-windows-binary-distributions 7shi.hateblo.jp/entry/2012/05/07/034105 https://cs.nyu.edu/~exact/core/gmp/index.html
595 名前:デフォルトの名無しさん [2019/10/02(水) 11:46:15.82 ID:55+aQRnY.net] 4.1.2 は解決
596 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 12:47:35.09 ID:pQm6Lk8A.net] >>594 どうでもいいことだが Stack Overflow のURLは削れる。 build - Are there any recent GMP Windows binary distributions? - Stack Overflow https://stackoverflow.com/questions/19192963
597 名前:デフォルトの名無しさん [2019/10/02(水) 12:53:13.99 ID:55+aQRnY.net] どうでもいいことだが 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/ では前者の方がバイト数は少ない
598 名前: mailto:sage [2019/10/19(Sat) 01:49:14 ID:US3VZtYL.net] msys2のpacmanでfdupesがないんですけど、どっからか手に入りますか?
599 名前:593 mailto:sage [2019/10/19(土) 15:58:06.55 ID:US3VZtYL.net] arch linuxので解決
600 名前:デフォルトの名無しさん [2019/11/10(日) 23:46:15.76 ID:vZIjc/J6.net] 長期間更新がありませんが何か支障があるのでしょうか・・
601 名前:デフォルトの名無しさん [2019/11/14(木) 16:18:35.97 ID:m0xrmwtq.net] >>600 あるよ
602 名前:デフォルトの名無しさん [2019/11/15(金) 14:11:12.27 ID:L6hfSVpN.net] >>600 ないない
603 名前:デフォルトの名無しさん mailto:sage [2019/11/15(金) 20:34:54.04 ID:cedqxdDY.net] ないあるよ
604 名前:デフォルトの名無しさん mailto:sage [2019/11/15(金) 23:50:32.38 ID:z3wd5lUW.net] WSL使ったら?
605 名前:デフォルトの名無しさん mailto:sage [2019/12/23(月) 02:13:46 ID:IO6RyZUn.net] Cygwin って /cygdrive上ではディレクトリまたげないんだけど、これってそんなもんだったっけ? かなり久しぶりにCygwinを使おうとしているのだが困っている。 ディレクトリ構成 D:\DEV\debug で 下のディレクトリから上のディレクトリのファイルをコピーする、以下のコマンドが通らない。 MyMachine@MyName /cygdrive/d/dev/debug $ cp ../some_file . ディレクトリまたげないんだけど、こんなんだったっけ? なお / をバックスラッシュにしても駄目。 なお/home以下のディレクトリならこれらのコマンドは通る。あまり試していないが、おそらく、/cygdrive以下だけ駄目。 何か設定がおかしい?それともこんなものだったっけ? なお今のところディレクトリをまたげないだけでカレントについてはコマンドは通る。
606 名前:デフォルトの名無しさん mailto:sage [2019/12/23(月) 02:30:38 ID:IO6RyZUn.net] >>605 すまぬ自己解決した。 debugがシンボリックリンクだったorz
607 名前:デフォルトの名無しさん [2019/12/23(月) 12:40:57.34 ID:sEnpgkKc.net] もちつけ 他人のせいにする前に自分を疑え
608 名前:デフォルトの名無しさん mailto:sage [2019/12/23(月) 12:45:36.48 ID:CGg4xw4r.net] 自分を疑う自分を疑え
609 名前:デフォルトの名無しさん mailto:sage [2019/12/23(月) 13:59:53.49 ID:IO6RyZUn.net] >>607 それはそうだが普段シンボリックリンクである事なんて意識しないからな。 いまだにcygwinではNTFSのシンボリックリンクを辿れないのはしょぼいと思うが。 なお32bit版。bashはversion4.4.12(3)、cygwin1.dll はversion 3001.2.0.0 (昨日の時点でsetup.exeを使いBestに更新) 64bit版なら行けるのかも?誰か動作報告よろしく。
610 名前:デフォルトの名無しさん [2019/12/23(月) 14:06:09.78 ID:sEnpgkKc.net] NTFSのリンクはシンボリックリンクではないでしょ
611 名前:デフォルトの名無しさん mailto:sage [2019/12/23(月) 14:48:39.41 ID:Losi+wwQ.net] シンボリックリンクあるよ、ジャンクションじゃないやつ
612 名前:デフォルトの名無しさん mailto:sage [2019/12/23(月) 15:26:21.18 ID:IO6RyZUn.net] >>610 シンボリックリンクはSever2008/Vistaから導入された。もう10年以上前になる。 https://www.atmarkit.co.jp/fwin2k/win2ktips/988symlink/symlink.html つかお前、このレベルの話を知らないでその言い草は完全に老害化してるぞ。
613 名前:デフォルトの名無しさん mailto:sage [2019/12/23(月) 15:39:18.43 ID:Losi+wwQ.net] mklink /? で普通に表示されるのに それすらやったことないのか?
614 名前:デフォルトの名無しさん mailto:sage [2019/12/23(月) 15:40:22.34 ID:Losi+wwQ.net] 共有フォルダ作るときなんか シンボリックリンクとジャンクションの違いを知らないと困るだろうが
615 名前:デフォルトの名無しさん [2019/12/23(月) 15:41:13.85 ID:sEnpgkKc.net] みなさん思いのほか親切ですね
616 名前:デフォルトの名無しさん mailto:sage [2019/12/23(月) 15:47:56.41 ID:nbY+qllN.net] >>609 シンボリックリンクもジャンクションも辿れるし、環境変数の設定(CYGWIN=winsymlinks:nativestrict)によってはln -sやtarの展開でNTFSのシンボリックリンクができる NTFS側でD:とかをリンク先にしても、勝手に/cygdrive/d以下に読み替えてくれる cygdrive以下だけ動かないなら、/etc/fstabの設定がおかしいとか?
617 名前:デフォルトの名無しさん [2019/12/23(月) 15:48:24.03 ID:sEnpgkKc.net] だけどシンボリックリンクωを名乗ってるだけでシンボリックリンクではないですねこれ
618 名前:デフォルトの名無しさん mailto:sage [2019/12/23(月) 15:52:08.05 ID:Losi+wwQ.net] 難癖つけたいんなら、具体的に問題を指摘しろや
619 名前:デフォルトの名無しさん mailto:sage [2019/12/23(月) 15:54:08.35 ID:qAO2lZtX.net] Windowsには 1.ハードリンク 2.ジャンクション 3.あほなシンボリックリンク 4.だるいシンボリックリンク がある
620 名前:デフォルトの名無しさん mailto:sage [2019/12/23(月) 16:12:25.30 ID:IO6RyZUn.net] >>616 すまんが、/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環境で使っている人がいたら試してみてくれ。 >>617 いや完全にシンボリックリンクだよ。 ln -s と使い勝手は同じ。
621 名前:デフォルトの名無しさん mailto:sage [2019/12/23(月) 16:26:38.22 ID:CGg4xw4r.net] cygwinはもう永眠させてやれ WSLに乗っ取られた
622 名前:デフォルトの名無しさん mailto:sage [2019/12/23(月) 18:46:28.73 ID:wtBUbgEZ.net] >>617 黙れ!
623 名前:デフォルトの名無しさん mailto:sage [2019/12/23(月) 22:27:33.69 ID:nMe23UdH.net] >>620 何をしようとしているか大体分かった。 ・/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に合わせていると考えられる。
624 名前:デフォルトの名無しさん mailto:sage [2019/12/23(月) 23:39:27.27 ID:IO6RyZUn.net] >>623 こちらの状況は正しく伝わっており、君の言っていることも正しい。 こちらも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 ".." > .. 分かれば出来れば解説よろしく。
625 名前:デフォルトの名無しさん mailto:sage [2019/12/23(月) 23:43:56.19 ID:gENEPh5i.net] WindowsがーではなくCygwinの問題でしょ WindowsはWindowsの仕様でやってる。それがなんであれ正しい仕様 Cygwinがエミュレート機能をすべて行ってる 問題があるならそれはCygwinの問題 WSLならその問題も解決してるだろうさ
626 名前:デフォルトの名無しさん mailto:sage [2019/12/23(月) 23:58:57.35 ID:IO6RyZUn.net] >>625 それは違う。 Cygwinはエミュレーションレイヤーを提供しており、つまりUnixのシステムコールを受け付けているだけ。 だから仕様としてUnixと同じ動作になる。 詳しくはWikiなり本家なり読めばいい。 問題はUnixの糞仕様が今も修正されずそのままbash等で誤魔化され続け、 windowsでは修正された?為に動作が異なっている事による。 ただこれをCygwinで修正することは出来ないし、するべき事柄でもない。
627 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 00:05:26.55 ID:8h2rOUkn.net] > Cygwinはエミュレーションレイヤーを提供しており、つまりUnixのシステムコールを受け付けているだけ。 ただしい ? だから仕様としてUnixと同じ動作になる。 ○ 仕様としてUnixと同じ動作になるように目指すべきだが、できてない
628 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 00:06:45.59 ID:8h2rOUkn.net] なんか文字化けする方法のバツを記録してるな。これでいいか? × だから仕様としてUnixと同じ動作になる。 ○ 仕様としてUnixと同じ動作になるように目指すべきだが、できてない