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

    私的良スレ書庫

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

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

    gcc スレッド一覧へ / gcc とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - 476 + - cannot + - curses + - pthread + - wcout + - wcwidth + - yum + - リダイレクト + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    351 : デフォルトの名無 - 2009/05/04(月) 13:58:40 (+70,+29,-6)
    >>350
    自分で書いたことも読めないのか。
    とりあえずまず自分で読んだらどうだ。
    352 : デフォルトの名無 - 2009/05/04(月) 14:01:12 (+47,-29,-161)
    >>346
    > libstdc++はつまり
    > 「オープンソースにしてくれるとうれしいけど、
    > まあそうじゃなくても良いよ。特に制約は科しません」
    この翻訳(意訳)でOK。
    > 「GCC(や他のGPLでライセンスされたエディタなど)を使って
    > 開発されたソフトウェアには何ら制約はありません。」
    ここもこの翻訳(意訳)でOK。
    > 「しかしBisonは自身のコードの一部をコピーするのでGPL強制です。」
    ここもこの翻訳(意訳)でOK。

    > BisonとやらはGCCの一部なのかい?
    > だとするとやっぱりGCCを使うと結果的に産物もGPL強制?
    現在のGCC(g++しか記憶にないが)はbison使わないんじゃなかったか?

    以上まとめると、商用利用も万事OKで全く制約はないと思われ。
    353 : デフォルトの名無 - 2009/05/04(月) 14:02:06 (+75,+29,-5)
    >>350
    いや再確認してるだけだろ、無能はだまっとれ。
    354 : デフォルトの名無 - 2009/05/04(月) 14:47:53 (+114,+29,-188)
    >346
    元々この FAQ の項は GPL なツールを使ってフリーじゃないプログラムを開発できますか?という項。
    で、問題ないというのが最初の段落なんだけど、自身のコードの一部をコピーするものもある、というのが次の段落に説明されていて
    その例として Bison (構文解析器を作成する為のツール) が挙げられている。
    コピーされたコードについては元々のライセンスが適用されるんだけど、Bison に関して言えば例外が認められていて非フリーの
    プログラム作成に使っても問題ない、というのが最後の段落。
    仮に GCC が Bison を利用していたとしても影響を受けるのは GCC まで。
    結局、いずれにしろ GCC の生成物を非フリーとして利用してもよい。

    まとめると GPL なツールを用いて非フリーのプログラムを作成しても基本OKだけど、ソースをコピーするものについては
    それぞれ例外条項があるかどうか確認するべし、となる。
    355 : 346 - 2009/05/04(月) 15:03:55 (+70,+29,-15)
    >>352
    >>354
    なるほど、だいぶ分かりました。
    GCCは非フリー利用にも耐えうる事が
    ちゃんとオフィシャルに示されているわけですね。
    GCCが発展した理由が分かったような気がしてきました。
    356 : デフォルトの名無 - 2009/05/05(火) 12:29:02 (+0,+0,+0)
    C++ code - 28 lines - codepad
    http://codepad.org/1sFiMF2t
    このコードで
    g++ (GCC) 3.4.5 (mingw special)にて
    コンパイルオプション -O2 -Wall
    としたときに発生する警告について、皆様のお知恵をどうかお貸しください。

    C:/PROGRA~1/mingw/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.
    4.5/bits/stl_tree.h: In member function `typename std::_Rb_tree<_Key, _Val, _Key
    OfValue, _Compare, _Alloc>::_Link_type std::_Rb_tree<_Key, _Val, _KeyOfValue, _C
    ompare, _Alloc>::_M_copy(const std::_Rb_tree_node<_Val>*, std::_Rb_tree_node<_Va
    l>*) [with _Key = std::string, _Val = std::pair<const std::string, int>, _KeyOfV
    alue = std::_Select1st<std::pair<const std::string, int> >, _Compare = std::less
    <std::string>, _Alloc = std::allocator<std::pair<const std::string, int> >]':
    C:/PROGRA~1/mingw/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.
    4.5/bits/stl_tree.h:1029: warning: '__top' might be used uninitialized in this f
    unction
    C:/PROGRA~1/mingw/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.
    4.5/bits/stl_tree.h:365: warning: '__tmp' might be used uninitialized in this fu
    nction
    というwarningが出てしまいます。

    g++ ~~.cpp -O2
    でも
    g++ ~~.cpp -Wall
    でもwarningが出ないのですが
    g++ ~~.cpp -O2 -Wall
    だとwarningが出てきます。

    [C++] MingW warning in one of the stock sources? - GameDev.Net Discussion Forums
    http://www.gamedev.net/community/forums/topic.asp?topic_id=523290
    ここの人も同じような問題に当たっているようですが、これは何がおかしいのでしょうか?
    357 : デフォルトの名無 - 2009/05/07(木) 10:14:00 (+0,-30,-141)
    >>356
    詳しいことは知らんが、その警告は最適化しないと出てこない。
    要は、最適化のフェーズで変数を未代入で参照しているようなパスを見出しているのだろう。
    手元の3.4.4のソースだと、どちらも関数の戻り値で初期化しているように見えるのだけど、3.4.5で変わったのかもしれない。
    尤も、例えば次のようなコードでもその警告は出るので余り心配する必要はないだろう。
    --
    int main()
    {
    int foo;
    for (int ic = 0; ic < 10; ++ic) {
    if (ic) {
    ++foo;
    } else {
    foo = 0;
    }
    }
    printf("%d\n", foo);
    return 0;
    }
    358 : 356 - 2009/05/07(木) 11:30:15 (+0,+29,-7)
    >>357
    良い例ありがとうございます。
    では、心配しないで進むことにします。
    お世話になり、ありがとうございました。
    359 : デフォルトの名無 - 2009/05/07(木) 11:42:18 (+0,-30,-76)
    どうでもいいけど、>357のソースをgcc -std=c99 -O3 -funroll-loops -Wallしたら警告が消えた。
    どうやら、O3の最適化とunroll-loopの組み合わせでループを全展開して代入だけにしてしまうらしい。
    と思ってアセンブリ出力を見たら只管インクリメントしていて笑えた。
    360 : デフォルトの名無 - 2009/05/07(木) 21:45:44 (+0,-29,-15)
    >>356
    Binary Hacksに>>357が言ってることが書いてあった気がする
    361 : デフォルトの名無 - 2009/05/13(水) 16:56:51 (+13,-30,-207)
    GNU ncursesで日本語表示をするやり方を教えてください。
    環境はWindows Vista Businessのcygwinです。
    configure --enable-widecの後makeしたncursesを使っています。
    コンパイルはgcc test.c -lncurseswです。
    "ほげほげ"と表示させたいのですが文字化けしてしまいます。
    ただのprintf("ほげほげ");は正常に表示されています。
    ソースは以下です。
    <ncursesw/ncurses.h>
    #include <locale.h>
    main(){
    setlocale(LC_ALL,"");
    initscr();
    addstr("ほげほげ");
    refresh();
    sleep(1);
    endwin();
    }
    google検索してみた結果、ほぼ同じ状況の方を見つけ、
    Windows Service for Unix3.5を使うと表示できるようであることはわかったのですが、vista なので困っています。
    cygwinで文字化けせずに表示する方法はないでしょうか。
    362 : デフォルトの名無 - 2009/05/13(水) 22:53:42 (+4,-29,-4)
    今のcygwinはsetlocaleをほとんど無視する仕様だった希ガス
    363 : デフォルトの名無 - 2009/05/13(水) 23:28:01 (+3,-30,-49)
    >>362
    setlocaleはCygwin-1.7なら一応動く。(つか、setlocaleしないとまともに動かず、それはそれで困っているので現在hack中)
    ただし、wcwidth/wcswidthも腐ってるので、ncursesw使っても日本語はNGというしょぼーんな結果に。
    そのうち何とかするつもりなので気長に待て。
    364 : 361 - 2009/05/14(木) 08:35:11 (+36,-30,-56)
    cygwinで日本語表示は厳しそうですね・・・
    仮想PCにXPを入れてWindows Service for Unix3.5上で動かしてみたら、
    先のサンプルでの”ほげほげ”の表示の確認ができました。
    仕方がないので、Windows Service for Unix3.5を使っていこうと思います。
    ありがとうございました。
    365 : デフォルトの名無 - 2009/05/14(木) 10:00:05 (+62,+29,-18)
    >>364
    XWindow使えば少しはましだった希ガス。尤も、そこまでしてCygwinにこだわる必要もない黄モス。
    366 : デフォルトの名無 - 2009/05/14(木) 10:43:20 (-1,-29,-36)
    Vista Businessなら仮想環境使わなくてもSUA(SFUの後継)使えなかったっけ
    367 : デフォルトの名無 - 2009/05/14(木) 17:20:20 (+3,-30,-72)
    cygwinのwcwidth/wcswidthが腐ってても--enable-widecつけてビルドすると
    libutf8のほうの使うようになるから、おkだった希ガス

    あとはsetlocale(LC_ALL, NULL);が常にja_JP.UTF-8を返すようにしたcygwinのdllと
    少なくてもUTF-8表示に対応した端末(漏れの場合はck
    用意したら表示できたYO

    368 : デフォルトの名無 - 2009/05/23(土) 19:35:45 (+42,-30,-31)
    #include <iostream>

    int main()
    {
    std::cout << "能" << std::endl;
    return 0;
    }

    このコードがg++ 3.4.5 Mingwでコンパイルできません。
    どうすれば良いでしょうか?
    369 : デフォルトの名無 - 2009/05/23(土) 20:04:26 (+17,-29,+0)
    "能\"
    370 : デフォルトの名無 - 2009/05/23(土) 20:27:09 (+49,+23,-1)
    >>369逆じゃねーの?
    371 : 368 - 2009/05/23(土) 20:35:41 (-1,-29,-2)
    "能\"
    でいけました。
    ありがとうございました!
    372 : デフォルトの名無 - 2009/05/23(土) 20:37:40 (+65,-30,-56)
    gcc --input-charset=cp932 --exec-charset=cp932
    373 : デフォルトの名無 - 2009/05/23(土) 20:40:27 (+53,+30,+0)
    374 : デフォルトの名無 - 2009/05/23(土) 20:50:49 (+57,+29,-2)
    なるほど、文字コードの問題なのですね。
    ありがとうございます。
    375 : デフォルトの名無 - 2009/05/23(土) 21:14:17 (-1,-29,-71)
    文字コードの問題だけじゃなくてインストーラでインストールした場合
    iconvがリンクされてないので古いcc1.exeとcc1plus.exeを持ってこい
    という話
    376 : デフォルトの名無 - 2009/05/23(土) 21:33:32 (+57,+29,-3)
    なるほど、
    多少の処置が必要なのですか。
    ありがとうございます。
    377 : デフォルトの名無 - 2009/05/23(土) 21:42:50 (+55,+29,-8)
    俺もそれでハマったんで
    本当にMinGWのインストーラは糞だわ
    というか8ビット圏の人間無視してるだろって感じ
    378 : デフォルトの名無 - 2009/05/23(土) 23:59:53 (+8,-29,-5)
    www.tdragon.net/recentgcc
    俺はこれ使ってる
    379 : デフォルトの名無 - 2009/05/24(日) 01:10:33 (+9,-29,-13)
    >>378
    これSTLportの最新版(5.2.1)ビルドできる?
    380 : デフォルトの名無 - 2009/05/24(日) 02:23:34 (+13,-15,-28)
    >>379
    若干の修正が必要だが一応ビルドできた
    EHテストも通ったけど
    ちゃんと使えるライブラリとしてビルドできたかどうかは不明
    381 : デフォルトの名無 - 2009/05/29(金) 11:04:07 (+27,-29,-4)
    MinGWでGDI+ができた人いませんか?
    382 : デフォルトの名無 - 2009/06/02(火) 16:29:42 (+2,-30,-69)
    ハッシュ検索関係hcreate/hsearch/hdestroy
    cygwinにはあってMinGWにはないのな
    -mno-cygwinで使いたきゃ自力で実装するしかないっと
    383 : デフォルトの名無 - 2009/06/03(水) 09:52:38 (-1,-29,-32)
    >>382
    MinGWを使うってことは,POSIXなAPIを諦めてWin32 APIと生きる覚悟をするってことだ
    384 : デフォルトの名無 - 2009/06/04(木) 06:02:06 (+44,-30,-58)
    -- foo.c
    extern void g();
    void f() { g(); }
    --

    gcc -shared foo.c -o foo.so

    こんな共有ライブラリを作る場合、
    シンボルgについて何も知らなくても実行時に解決してくれるはずですが、
    cygwinで同じことをやろうとするとfoo.soがビルドできません。
    (undefined reference to `_g' とldに言われる)
    何か別のオプションが必要なのでしょうか?
    385 : デフォルトの名無 - 2009/06/04(木) 06:07:49 (+0,-29,-1)
    foo.dll?
    386 : 384 - 2009/06/04(木) 07:48:52 (+6,-30,-41)
    >>385
    あ、cygwinでは-o foo.dllでやってました。

    で、スマソ自己解決
    http://www.bookshelf.jp/2ch/unix/1107587275.html
    の273以降に話が出てました。

    > WindowsのDLLじゃビルド時にシンボル解決をしてやらないといけないんだよね。
    > なんかアホらしい仕様。
    orz

    gcc -shared foo.c -o foo.dll -lowner_of_g
    ちゃんと書かなきゃいけないようです。
    書けない場合は自分でシンボル解決しなきゃいけないのか
    387 : デフォルトの名無 - 2009/06/04(木) 16:27:27 (-1,-29,-28)
    >>386
    http://www.pushaa.jp/~hizuki/のコピペで何も考えずに作ってたけど
    (さらに"-s"付けると関数名そのままで呼べるようになる)
    そんな制限があったのか
    388 : デフォルトの名無 - 2009/06/04(木) 21:48:52 (+58,+29,+0)
    >384
    一応こんなのもあるべ。
    http://alain.frisch.fr/flexdll.html
    389 : デフォルトの名無 - 2009/06/05(金) 04:54:12 (+51,+30,+0)
    390 : デフォルトの名無 - 2009/06/13(土) 16:16:43 (+19,-30,-83)
    Windows XP SP2です。
    g++ source.cpp
    というコマンドでコンパイルすると、
    コンパイルエラーが大量に出て
    上の方が読めなくなってしまいます。

    コンパイルエラーは、特に最初の方が大事なわけで
    これでは困るのですが、どうしたら全てのエラーメッセージがでるでしょうか?

    g++ source.cpp > result.txt
    の様にリダイレクトしてみたのですがだめでした。

    391 : デフォルトの名無 - 2009/06/13(土) 17:17:11 (+40,-29,-65)
    >>390
    オイオイ。 標準エラー出力をとらなきゃ駄目だろ。

    g++ source.cpp 2> result.txt

    っていうかソースコードをある程度のサイズに分割しておけば、
    最初の方が流れてしまうほど大量のエラーメッセージにはならないはず。
    392 : 390 - 2009/06/13(土) 17:21:01 (+68,+29,-71)
    >>391
    2>
    で取れるのですか。
    初めて知りました。
    ありがとうございます。

    >ソースコードをある程度のサイズに分割しておけば、
    まさにおっしゃる通りです。
    ・・・が、特定のクラスのデバッグ用途のソースなため
    分割の意味があまりなく、またエラーが出る時はソース全てに渡り
    むっちゃくちゃ一斉に出るという特徴がありまして。
    393 : デフォルトの名無 - 2009/06/15(月) 18:56:04 (+52,+29,-17)
    OSの使い方を先に覚えないとな
    394 : デフォルトの名無 - 2009/06/15(月) 19:37:27 (+21,-30,+0)
    boostのmulti_array.hppに関して質問させてください。

    とあるプログラムをコンパイル&インストールしようと思い、cygwinを導入しました。
    コンパイル&インストールにはboostの1.34以上が要求されていました。
    しかし、cygwinのパッケージに含まれていたboostが1.33である事に気付かず、
    そのまま行ってしまい、途中でエラーが出てコンパイルが中断しました。

    そこで漸くboostのバージョンが要求を満たしていなかった事に気付き、
    cygwinのsetup.exeを立ち上げてboostをアンインストールし、
    http://homepage3.nifty.com/kaku-chan/boost/install.htmlを参考に
    最新バージョンのboostをインストールしました。

    その後、もう一度コンパイル&インストールを試してみたのですが、
    途中で、
    checking boost/multi_array.hpp usability... no
    checking boost/multi_array.hpp presence... no
    checking for boost/multi_array.hpp... no
    configure: error: "boost/multi_array.hpp is unavailable"
    とエラーが表示され、コンパイルが止まってしまいます。

    この状態で数時間悩み続けているのですが、どうにも解決の糸口が見つかりません。
    これはboostのインストールがうまくいってないという事なのでしょうか?

    どうぞよろしくお願いします。
    OSはXPのSP2です。
    395 : デフォルトの名無 - 2009/06/15(月) 22:59:20 (+11,-26,-39)
    >>394
    > これはboostのインストールがうまくいってないという事なのでしょうか?

    たぶんそう。
    bjam は cygwin のパス変換ルールを知らないかもしれない。
    実際にどこにインストールされたか探してみなYo
    396 : 394 - 2009/06/16(火) 22:24:20 (+0,-30,-83)
    >>395
    boostがインストールされたディレクトリのパス
    ***/boost1_39/boostを
    ***/boostに変更してやると、無事にコンパイルできました。
    有難うございました。
    397 : デフォルトの名無 - 2009/06/17(水) 16:55:45 (+24,-29,-30)
    cygwin使ってんだけどxemacsの中で日本語入力ってどうやればいいんですか?
    398 : デフォルトの名無 - 2009/06/17(水) 21:11:57 (+45,+19,+1)
    >>397
    帰れ、死ね
    399 : デフォルトの名無 - 2009/06/21(日) 04:32:15 (+37,-30,-140)
    概要:

    MSYS1.0のrxvt/sh+cmd.exeで、特定の漢字を含む
    シェルスクリプトを実行できません。

    例:

    $ cat test.sh
    echo "冒"

    $ sh test.sh
    test.sh: line 2: unexpected EOF while looking for matching ``'
    test.sh: line 3: syntax error: unexpected end of file

    test.shはShiftJISで、rxvtの-fnもTerminalに設定しています。
    マルチバイト文字を正しく認識していない為だと思われます。

    対処法を御存じの方は、よろしくお願いします。
    400 : 399 - 2009/06/21(日) 04:43:15 (-1,-29,-10)
    追記:
    ちなみに/etc/profileにてexport LANG=ja_JP.SJISとしています。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / gcc スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - 476 + - cannot + - curses + - pthread + - wcout + - wcwidth + - yum + - リダイレクト + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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