のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,853人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレCygwin + MinGW + GCC 相談室 Part 3

    gcc スレッド一覧へ / gcc とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - 932 + - cannotfind + - cp932 + - FreeHDL + - heap + - known + - log4cxx + - WinMain@16 + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    451 : デフォルトの名無 - 2008/01/06(日) 20:47:21 (+37,-29,-60)
    fread()一回では、エミュレートのオーバーヘッドは1回分であることが期待できる。
    多くても、BUFSIZごとに1回だろう。
    fgetc()では、毎回の呼び出しごとにオーバーヘッドが発生する懸念がある。
    ungetc()のために毎回余計に読み込まなくてはいけないと言う事情がこれに拍車を掛けるだろう。
    452 : デフォルトの名無 - 2008/01/06(日) 21:18:40 (+57,+29,-10)
    そゆのってオーバーヘッドのかからない層で
    バッファリングすると思うんだけど・・・。
    453 : デフォルトの名無 - 2008/01/06(日) 21:21:49 (+57,+29,-1)
    いや、そうじゃないからこそ、cygwinのエミュレーションは問題だといっている。
    454 : デフォルトの名無 - 2008/01/06(日) 22:18:45 (+3,-30,-128)
    MinGWのgccやg++は、標準ヘッダの検索パスをどこで決めているんでしょ?

    c:\mingwにインストールしたときはbinのpathを通すだけでコンパイルできたソースが、
    j:\!repos\softwares\mingwにインストールしたときはbinのpathを通すだけだと、
    no include path in which to search for stdio.hとか言われる。
    C_INCLUDE_PATHやCPLUS_INCLUDE_PATHを設定すればいいみたいだけど・・・。
    455 : デフォルトの名無 - 2008/01/06(日) 22:19:31 (-5,-27,-10)
    >>443
    MSYSもいっしょに
    456 : デフォルトの名無 - 2008/01/07(月) 03:31:02 (+62,+29,-25)
    >>451
    ソースを読んでどこが悪いとか具体的に確信を持って言ってる?
    なんか勘違いしてる気が…
    457 : デフォルトの名無 - 2008/01/07(月) 05:35:00 (+55,+27,-4)
    そのへんを計測してみた人どこかにいないかな
    458 : デフォルトの名無 - 2008/01/07(月) 06:23:28 (-1,-29,-26)
    なんかどっかのスレでも書いた気がするけど
    俺のVista(HPx64)でMSYSちゃんが上手く動いてくれない
    459 : デフォルトの名無 - 2008/01/07(月) 10:14:15 (-6,-29,-2)
    XPならHomeでもおk
    460 : デフォルトの名無 - 2008/01/07(月) 10:27:17 (-1,-29,-19)
    MSYS1.0.10に1.0.11の何か上書きしたらイケましたわ。
    461 : デフォルトの名無 - 2008/01/07(月) 13:00:45 (+57,+29,-24)
    使いもしないツールを多く含んだメタボ気味なコンパイラ使うより
    いいかもね
    462 : デフォルトの名無 - 2008/01/09(水) 00:20:59 (+46,-30,-195)
    少しスレ違いかもしれませんが質問させてください。

    環境は、
    MinGW 5.1.3
    MSYS  1.0.10

    自前のC++ソースをビルドしようとすると、
    こんな感じのシンボル未定義のメッセージが並んでリンクエラーになります。
    foo.cpp:(.gnu.linkonce.t._ZNK11foo16hogeERKSt6vectorIdSaIdEEj+0x14a) : undefined reference to `_cxa_begin_catch'

    nmで見るとlibstdc++.aが必要なようですが、-lでばっちり指定しています。
    ./libstdc++.a:eh_catch.o:00000000 T ___cxa_begin_catch
    ./libsupc++.a:eh_catch.o:00000000 T ___cxa_begin_catch

    何が原因なんでしょう。。打つ手なしっす。
    463 : デフォルトの名無 - 2008/01/09(水) 00:33:27 (+4,-27,-2)
    -lの方が先に指定されていたりはしないよね?
    464 : 462 - 2008/01/09(水) 01:08:24 (-1,-29,-29)
    >>463
    -lstdc++を一番後ろに置いてます。
    not foundが出るわけではないのでライブラリは見つけてるはずなのですが、、
    コンパイラのインストールからやり直すべきなのでしょうか?
    465 : デフォルトの名無 - 2008/01/09(水) 01:13:59 (+2,-29,-54)
    g++コマンドでリンクすりゃ、libstdc++を明示する必要はないはずだが。(勝手にリンカに適切なオプション渡してくれる)
    466 : デフォルトの名無 - 2008/01/09(水) 01:31:54 (-1,-29,-35)
    >>465
    一度g++に切り替えて試したときもlstdc++を付けたままで、まったく同じエラーが出ました。
    早速明日外してやってみます。
    467 : デフォルトの名無 - 2008/01/09(水) 01:52:52 (+64,+29,-26)
    >>462
    アンダースコアの数が違うからリンクできるように見えない。
    マップファイルとかアセンブリのソースとか確認しないとわかんないね。
    468 : デフォルトの名無 - 2008/01/09(水) 21:12:22 (+35,+12,+0)
    バージョンが合ってないとか
    469 : デフォルトの名無 - 2008/01/10(木) 22:14:59 (-2,-30,-46)
    470 : デフォルトの名無 - 2008/01/13(日) 16:32:21 (+3,-30,-159)
    UACが有効なVistaでcygwin使うとき、sudoみたいに管理者権限を動的に(必要なときに)与えるようにしたいんです。
    ここで間違えないで欲しいのは、実行したユーザーが属するAdministratorsが保有するACL管理下の権限であって、Administratorの強制執行権限ではありません。
    引数をコマンドとして実行するだけのプログラムにマニフェストを組み込んでもcygwinから実行するとNo permissionでキャンセルされます。
    runasではadministratorでの実行は可能ですが、条件に合いません。
    何かいい方法は無いでしょうか?
    471 : デフォルトの名無 - 2008/01/13(日) 20:36:11 (+26,-29,-61)
    VisualStudio, gcc, vim, Cygwinで開発しています。
    MinGWというのは使ったことがあるのですが、メリットがよく分かりませんでした。
    上記の開発ツールに加えてMinGWも使うとしたときのメリットにどんなものがありますか?
    472 : デフォルトの名無 - 2008/01/13(日) 21:46:31 (+14,-29,-124)
    Cygwinというのは苦肉の策であって、
    例えばパス名の区切りがスラッシュになるなど、環境との親和性に問題がある。

    VisualStudioはアクチがあり、法外に高額で、
    かといってラーニングやスタンダードはライセンスにいろんな制約がある。
    ただしカネがあるなら最適化他の面で圧倒的に有利だ。

    gccってNTリソースパックのgcc?
    NTのPOSIXサブシステム用はOSの汎用性がない。

    MingWは完成度さえ高ければ素晴らしいのだがw
    ハローワールドで数メガとか恐ろしいことになったりするw
    473 : デフォルトの名無 - 2008/01/13(日) 22:18:13 (+11,-30,-145)
    >>471
    その列挙の意味がよく分かりませんが、VSとcygwin上のgccとvimを併用してると解釈します。

    http://ja.wikipedia.org/wiki/MinGW#Cygwin.E3.81.A8.E3.81.AE.E6.AF.94.E8.BC.83
    ↑cygwinとmingwの比較です。2つは哲学が異なります。

    cygwinはmingwに比べwindowsシステムとの互換性が低い(パスとか)のでwindows向けの開発であれば避けた方がいいかもしれません。
    しかし、cygwinにmingwが包括されています(詳しい位置づけはよく分かりませんが)。
    dllの不要化やWindows APIの利用も可能です。cygwinとmingwを併用する利点はあまり無いと思います。
    474 : 471 - 2008/01/13(日) 22:58:52 (+11,-30,-237)
    >>472
    ありがとうございます。

    Win32を使ったアプリを作らないせいか、環境とし親和性はあまり意識いたことないです。
    やはり、Win32APIを使うと問題になってきますか。
    VS Express 2005のフリー版を使っています。
    gccはCygwin上のgccです。

    >>473
    リンクありがとうございます。

    > VSとcygwin上のgccとvimを併用してると解釈します。
    そうです。わかりにくくてすみません。

    > しかし、cygwinにmingwが包括されています
    それは初耳です。cygwinを使っていれば、mingwと同じかそれ以上の
    ことが出来るということですか。

    > cygwinはmingwに比べwindowsシステムとの互換性が低い(パスとか)ので
    > windows向けの開発であれば避けた方がいいかもしれません。

    windows向けの開発をする予定があるので、今からVSを使って慣れておこうかと思っている次第です。
    windows向けであればcygwinよりmingwがいいんですか。
    あるいは、windows向けであればビジネス的にはVSが圧倒的シェアかと思いますが、
    個人的使用(趣味のプログラミング)であればVisualStudio2008などは高額で敷居が高いですね。
    個人向けであれば、mingwが最適なのかなと思って、最近mingwが気になりだした次第です。
    475 : デフォルトの名無 - 2008/01/13(日) 23:20:30 (+0,-28,-11)
    素直にVS使っとけ。どうせ2008も無償版が出るんだから。
    POSIXを意識しないならWindows上でまでgcc使う必要はない。
    476 : デフォルトの名無 - 2008/01/14(月) 01:43:18 (+0,-29,-25)
    >>472
    ハローワールドで数メガとかならねーよw
    # あ…Javaで書いてgcjでコンパイルとかしたらなるか
    477 : デフォルトの名無 - 2008/01/14(月) 02:33:08 (+47,+24,-14)
    デバッグ情報てんこもりとか
    478 : デフォルトの名無 - 2008/01/14(月) 03:08:49 (+3,-30,-171)
    [Test.java]
    public class Test {
      public static void main(String[] args) {
        System.out.println("Hello, world.");
      }
    }

    > gcj -O2 --main=Test -o test Test.java
    > ls -lh test.exe
    -rwxr-xr-x 1 hoge none 6.1M Jan 14 03:04 test.exe*
    > strip test.exe
    > ls -lh test.exe
    -rwxr-xr-x 1 hoge none 2.1M Jan 14 03:06 test.exe*

    うはwww
    479 : デフォルトの名無 - 2008/01/14(月) 14:10:45 (+6,-30,-95)
    >>471
    VS と MinGW の両方でコンパイルできるコードが割と簡単に書けるところが MinGW のメリット。
    MinGW では基本的に Win32 API を使う。
    スレッド、WinSock2、DLL のロードなどは Win32 API を利用するので
    VS 用と MinGW 用のコードの差分は小さくなることが多い。
    コンパイラ依存の部分を #ifdef で分ければ大半のコードを共用できる。

    Cygwin は使ったこと無いのでパス。
    480 : デフォルトの名無 - 2008/01/14(月) 14:43:38 (-1,-29,-21)
    逆に、cygwinだとWinSockを使わないでソケット周りを書けるのが魅力。
    要は、Linuxと同じソースでいける可能性が高い。
    481 : デフォルトの名無 - 2008/01/14(月) 22:47:17 (+4,-30,-63)
    >>474
    windows用のソースをwindows用にコンパイルするのがmingw、勿論VSも
    linux用のソースをwindows用にコンパイルするのがcygwinのgcc
    cygwinでもwindows用のソースをコンパイルする事はできます、そこで使われているのがmingw
    このcygwinのmingwが本家と同一なのかどうなのかはよく知りませんが。

    gcc --target-help の最初の10行程を見てみてください、参考になるかと思います。
    482 : デフォルトの名無 - 2008/01/15(火) 04:56:41 (+44,-30,-70)
    一部のファイルをインクルードすると

    failure to convert cp932 to UTF-8

    というエラーが発生するんですが
    これは何が原因なんでしょう?

    別のエディタで文字コードをUTF-8にして保存しても直りませんでした
    483 : デフォルトの名無 - 2008/01/15(火) 05:46:45 (-1,-23,-1)
    改行コードかも
    484 : デフォルトの名無 - 2008/01/15(火) 06:25:37 (-1,-30,-17)
    >>483
    阿呆ですか。

    >>482
    --input-charsetは?
    485 : デフォルトの名無 - 2008/01/15(火) 07:23:08 (+43,+20,-4)
    いやまじであるぜ?
    改行コード
    486 : デフォルトの名無 - 2008/01/15(火) 14:22:35 (+63,+29,-22)
    >>482
    「一部のファイル」ってのを明確すると話が早かったりするかも。
    boostだったりしない?
    487 : 本田 - 2008/01/17(木) 17:40:38 (+4,-30,-306)
    >COMプログラマの解説書
    >Crispin Goswell
    >Microsoft Office Product Unit
    >1995年 春
    >1995年9月13日改訂
    http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdncomp/htm/com_co.asp
    >抄録
    >この解説書は、
    >Microsoft(r) OLE Component Object Model(COM)オブジェクトを作成し、
    >効果的に使用する方法を説明しています。
    >例文はほとんどCで書かれていますので、実際に何が行われているかが、大変分かりやすく示されています。
    >プログラマの中には、オブジェクトを実行するためにC++を好んで使用する人もいるでしょう。
    >C++プログラマの観点からCOMの概念および基本的な使用法を論じているのは
    >Kraig Brockschmidt著のInside OLE (第2版)(MSDN Library(Books))です。
    >COMとは何か、またその設計や哲学の後ろにある動機付けをより理解する事に興味がある読者なら、
    >Component Object Model Specification(MSDN Library(Specifications))の最初の2章を読んでください。
    >第1章には簡単なイントロダクションを、第2章では徹底的に概要を解説してあります。
    >この解説書ではInside OLEとCOM Specificationにある情報を、
    >COMオブジェクトを実装する良い方法をいくつか示しながら解説するようにしてあります。
    488 : デフォルトの名無 - 2008/01/17(木) 18:01:35 (+3,-30,-55)
    >>482
    input-charset を CP932 として使っていながら、欧州由来のコードで
    CP932的に不正なものを含むソースをコンパイルしたんだと思う。
    ffmpegの何かのヘッダとか。
    489 : デフォルトの名無 - 2008/01/20(日) 14:26:15 (+4,-27,-24)
    エクスプローラーを使っているときに
    今見ているフォルダでCgywin窓を開きたいのですが
    どうしたらいいですか?
    490 : デフォルトの名無 - 2008/01/20(日) 15:01:59 (+18,-9,-6)
    アドレスバーからコピーして、cdすれば?
    491 : デフォルトの名無 - 2008/01/20(日) 15:39:29 (-1,-29,-12)
    >>489
    cygwin hereでググれ
    492 : デフォルトの名無 - 2008/01/20(日) 19:41:55 (+3,-30,-144)
    俺はこうしてる
    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\WinHandPrompt]
    @="Zsh(&C)"
    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\WinHandPrompt\command]
    @="cmd.exe /F:on /K \"cd %L&&zsh\""
    493 : デフォルトの名無 - 2008/01/21(月) 21:47:51 (+47,+29,-14)
    窓の手の流用か
    494 : デフォルトの名無 - 2008/01/22(火) 02:51:02 (+57,+29,-20)
    あれ、なんでばれたんだろう?
    、と思ったら書いてあったねハッキリと
    495 : デフォルトの名無 - 2008/01/26(土) 01:51:09 (+13,-30,-28)
    MSYSからgetchとかkbhitを拾うのはどうしたらいい?

    コマンドプロンプトではできることが
    MSYSでは上手くいかないことが意外に多い
    printfは必ずfflushも書かないと表示されないし・・・(TT
    496 : デフォルトの名無 - 2008/01/26(土) 05:18:27 (+3,-30,-80)
    毎回のようにfflushするくらいならsetvbufに_IOLBFしとけ。

    で、getchやkbhitはC/C++にもPOSIXにも準拠していないし、Win32にも無い。
    強いて言えば、DOSのデファクトスタンダードだったので残してある、というだけ。

    Win32APIを使わないとするなら、
    conio.hじゃなくてcursesとかを使うんじゃないの?知らないけど。
    497 : デフォルトの名無 - 2008/01/26(土) 11:11:00 (-1,-30,-36)
    >>495
    >printfは必ずfflushも書かないと表示されないし・・・(TT
    リダイレクトする用途を考慮しなくていいなら、printf()ではなくfprintf(stderr, ...)したまえ。
    498 : デフォルトの名無 - 2008/01/26(土) 15:58:13 (+3,-30,-199)
    いま操作しているPC(ネットワーク上でのコンピュータ名はPC1)のcygwin(以下cygwin1)から
    sshでほかのPC(ネットワーク上でのコンピュータ名はPC2)のcygwin(以下cygwin2)にログインして
    \\PC1\Shareにアクセスしようとすると"-bash: cd: \\yy-x60s\Share: Permission denied"と言われてしまいます

    cygwin2から直接"cd \\\\PC1\\Share"を実行するとこちらは成功します

    cygwin2で"setfacl -m user:SYSTEM:rwx \\\\PC1\\Share"を実行して
    直後に"getfacl \\\\PC1\\Share"を実行すると
    # file: \\PC1\Share
    # owner: pc2user
    # group: なし
    user::rwx
    group::r-x
    other:r-x
    mask:rwx
    とでていて設定が反映されてないことが原因なような気がするのですが、どのように設定するばよいか分かりません
    499 : デフォルトの名無 - 2008/01/26(土) 15:58:46 (-1,-29,-1)
    そういえばstderrはバッファリングされないからflushする必要もないよね
    500 : デフォルトの名無 - 2008/01/26(土) 16:13:01 (-1,-29,-27)
    でなきゃ困るだろ.そもそも
    >printfは必ずfflushも書かないと表示されないし・・・(TT
    は,それが当たり前だということを知らずに泣いてるだけの話だろ
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / gcc スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - 932 + - cannotfind + - cp932 + - FreeHDL + - heap + - known + - log4cxx + - WinMain@16 + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について