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

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

    gcc覧 / PC版 /
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - 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
    252 = :

    cygwinで(Boost1.33.1)
    Boost.Regex for ICU 使えたよ。
    -finput-charset=cp932 -fexec-charset=cp932

    (1)ICUをインストール
    (罠:configure系スクリプトの改行コードを変更してインストール)
    /usr/local にデフォルトでインストールされる。

    (2)Boostをインストール
    boost/regex/usr.hppの
    #define BOOST_REGEX_MATCH_EXTRA
    #define BOOST_HAS_ICU
    のコメントアウトをはずしてからICUのパスを指定してインストール
    ./bjam -sICU_PATH=/usr/local --toolset=gcc install

    (3)テストではまった点

    ・ICUはdllだがlibとほぼ同様にリンクできる。
    ・IDEはDevC++でやると少し楽かもしらん。
    ・ICUのUnicodeStringはgetTerminatedBuffer使わないとNULL文字がついてこない罠がある
    ・標準出力はwide->narrowに変換してから使う。
     (ただし、cygwinのCP932のsetlocaleは失敗するぽいのでロケール関数は使えなかった。緊急策としてMingwでsetlocale,mbstowcs,wcstombsをラップしたDLLを作成して対処した。>>247参照)

    253 = :

    cygwinでtgifを使いたいです。
    そこで、こちらのサイトを参考にしました。

    Cygwin + X + 日本語アプリケーション
    http://www.eaflux.com/cygwin-xfree-jp-supplement/

    おそらくインストールは完了したとは思います。
    でも、いざ実行しようとしたら
    Error: Can't open display:
    とエラーが表示されます。どうすれば解決できるでしょうか?

    255 = :

    ごめんなさい。よく分からないです。
    オプションを参照せよとのことでしょうか?

    256 = :

    xならdisplay接続先のXサーバがあるわけで、それを指定するには大抵DISPLAY環境変数を使うわけだ。
    Xサーバがローカルなら、DISPLAY環境変数に":0.0"でも設定しておけばいいはずなんだが。
    もしXの環境構築の経験がないなら、LinuxでもMacでもSolarisでも一度その辺りを覗いてきたら?

    257 = :

    詳しい解説ありがとうございます。
    残念ながら全く理解できません。
    私は環境構築とかのレベルじゃないようです。
    失礼しました・・・。

    258 = :

    前の方でglutの話が出てたのでメモ
    http://mywebpage.netscape.com/PtrPck/glut.htm

    259 = :

    GDI+は
    MinGWでも使うことはできるのでしょうか?

    260 = :

    >>259
    試したことねーけど普通に使えると思うよ
    gdiplus.dllに入ってるのはflat APIとよばれる普通のCインタフェースで
    それをC++のヘッダに書かれたクラス群でラップしてるだけだから
    リンケージやABIまわりの問題は無いはず

    261 = :

    >>260
    サンクス。
    G++用の<windows.h>を使うので、DevC++でWinApplication作成。

    PlatformSDK/IncludeからGdiplus関係のヘッダーをプロジェクトにコピーしてGdiplus.hをインクルード
    Gdiplus.libをLibraryに追加

    このままだとエラーでるので少し修正必要ぽいです。
    動作テストはしてませんが、コンパイルは通りました。

    GdiplusEnums.hの
    534行目のenum EmfPlusRecordType;をコメントアウト。(前方宣言いらないくさい)
    538行目のGDIP_WMF_RECORD_TO_EMFPLUS(n)マクロのEmfPlusRecordTypeへのキャストをコメントアウト

    GdiplusImaging.hの
    156行目の PixelFormat PixelFormat;を ::Gdiplus::PixelFormat PixelFormat;

    GdiHeaders.hの
    653行目の friend Graphics;をfriend class Graphics;

    262 = :

    すいませんgccスレで聞いたほうがいいっていわれたんで聞かせてください

    調べてもわからんかったので聞きたいんだけどeclipseのエラーで

    Error launching external scanner info generator (gcc -E -P -v -dD C:/Eclipse/workspace/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c) try1

    これ何すか?
    プロジェクトを作るとすぐに警告が出ててできません。

    どうすればなおるでしょうか?

    263 = :

    バージョンも環境も書かずに

    264 = :

    多分その前のスレの奴らは

    こんな奴相手に出来るか!

    と思って厄介払いしたんだな。

    265 = :

    Windows上でGtkmm使ったプログラムを創ろうとしています
    Cygwin環境でやるのがいいか
    Mingw環境でやるのがいいか
    それともネイティブがいいのか
    迷っています

    266 = :

    >>265
    迷う程度の知識レベルなら止めた方がいいと思います。

    268 = :

    cygwin環境のgccで.cをコンパイルしたんですが、実行している途中
    タスクマネージャで実行プロセスを見ると最大使用メモリ量と使用メモリ量が同じでした。
    これは使用メモリ量の制限によって処理速度が落ちていると考えてよろしいでしょうか?
    時間のかかる処理なので少しでも速くしたいのですが、解決策はありますか?
    regtoolでcygwinの最大メモリを増やすのは試しましたが、見当違いだったようです。

    269 = :

    >>268
    そもそもメモリが足りなければ、GCCは落ちると思う。

    タスクマネージャのヘルプによれば、
    最大使用メモリ量は、プロセスが開始してからのメモリ使用量のピーク値。
    だから、これが使用メモリ量と同じだったからといって、足りていないということではない。

    270 = :

    >>269
    そうなんですか、己の無知がお恥ずかしい・・・
    迅速な返信ありがとうございました。

    271 = :

    >>269
    gccの実行中という意味なのか?

    >>270
    速くしたいなら効率の良いプログラミングが出来るように
    勉強したり、経験を積むしかないだろ

    272 = :

    コンパイル中のメモリのことじゃなくて
    実行プログラムの方の話を行ってるんだろう

    >>271は日本語の勉強をしたほうがいい

    273 = :

    >>270
    JavaやLispのようなGCあり言語の経験を元に話してる?

    コミットチャージが物理メモリを越えてとスワップ処理で遅くなるけど
    最大メモリは関係ない。プロファイルとってみたら?

    274 = :

    Cygwinではstrdup関数はどこのフォルダのどのファイルに定義されていますか?
    string.hでは宣言のみでした。

    275 = :

    strdupの返り値は(char *)型のはずなのに、Cygwinだと↓で警告が出るのですが


    #include <stdio.h>

    struct p_person {
    char *name;
    char *address;
    char *tel;
    };

    int main(void)
    {
    struct p_person person;
    person.name = strdup("abcd");
    person.address = strdup("埼玉県所沢市どこそこ9-3-1");
    person.tel = strdup("042-951-XXXX");
    return 0;
    }



    ちなみにバージョンは
    $ help
    GNU bash, version 2.05b.0(9)-release (i686-pc-cygwin)

    276 = :

    >>274
    ライブラリの中。

    >>275
    何て警告が出るの?それを読んで、どうすればいいかわからないの?

    そのバージョン、 bash のバージョンだよ。コンパイラのバージョンは
    gcc --version ね。

    277 = :

    MinGW-5.1.3とgcc-3.4.5でSTLport-5.1.4を使いたいのだけど、
    コンパイル時undefined reference toとか出てきて上手くいかない。
    (-lstlport.5.1とかやってるにも関わらず)

    上手く動いている方、インストールの手順を教えてくれませんか?

    278 = :

    >>277
    configure してる?

    279 = :

    MinGWのGCC使ってOpenGLのプログラム書いてるんだけど
    なんかgl.libとかglu.libがないような気がするんだが。

    undefined reference to wglCreateContext@4 とか出るし。

    280 = :

    マニュアル嫁よ

    281 = :

    >>278
    それはmsysでbuild/libで./configure -c gccしてからmake -f gcc.mak install-staticするってこと?
    やってみたけど駄目だった。orz
    以下、コンパイル時のコマンド
    g++ -lstlport.5.1 stl.cpp
    C:/DOCUME~1/main/LOCALS~1/Temp/ccyobaaa.o:stl.cpp:(.text+0x33): undefined reference to `_imp___ZN11stlpmtx_std4coutE'
    (以下略)

    282 = :

    >>272
    日本語の勉強が必要なのは269だろ。
    あとお前は脳神経外科にでも池

    283 = :

    解決した。
    -oオプションが抜けてた。orz

    けど、プログラムの先頭に
    #define _STLP_USE_STATIC_LIB
    と書いてもダイナミックリンクになってしまうんだがこれってmingwの使用か?

    284 = :

    #defineはプリプロセッサへの指示であってリンカへの指示じゃないぞ。

    285 = :

    >>284
    その通りだな。orz
    初心者ですまん。

    286 = :

    先日cygwinを導入してこちらのサイトにあるソース
    http://www.geekpage.jp/programming/linux-network/getaddrinfo-1.php
    をgccでコンパイルしようとしたところ

    net2.c: In function `main':
    net2.c:11: error: storage size of 'hints' isn't known
    net2.c:12: error: storage size of 'addr' isn't known
    net2.c:24: error: dereferencing pointer to incomplete type

    このようなエラーが出てしまい、うまくコンパイルできませんでした・・
    他サイトの似たようなソース等も試してみたのですが同様のエラーが発生して
    うまくいきません。
    これをどうにか回避できないでしょうか?

    gccのバージョンは
    gcc (GCC) 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)
    です。

    288 = :

    オウ・・無いですね
    手打ちで追加してみたんですがどうもうまくいかないのですが
    cygwinでコンパイルするにはどうすればいいのでしょう?

    289 = :

    PCクラッシュをきっかけに、MP4Boxのbinaryを探していたら、GPACの公式にてLisence問題?
    でSourceのみの配布に変わっていた為、初めてMinGW+MSYSな環境を立ち上げようとして
    います。

    SourceForgeから必要最低限のbinaryを取ってきたのですが、MSYS*.exeが見つかりません。

    それでも何とかshellが動作するようになったのですが、/ に本来Installしたフォルダとは別に
    /usrも後からmountされてしまいます。fstabにはその様な記載はしておらず、レジストリに
    情報が無いかと検索を掛けてみてもmount情報が見つかりません。予想通り、/usrの下は
    /になっており、コマンドのpathが通らなくて目的のbinatyがbuild出来ない状況です。

    mount情報には、fstab以外の情報も有るところを見ると、何処かで設定していると思ってい
    るのですが、自分の力不足で見つけることが出来ず困っております。レベルの低い質問で
    申し訳有りませんが、情報、「スレ違いだから***で聞け!」等、アドバイス頂けないでしょ
    うか。

    290 = :

    ごちゃごちゃしてよくわからん

    291 = :

    fstabに書いてないのがマウントされるのはそんなものだと思うけど。
    俺のfstabはこんなの
    c:/MinGW /mingw
    c:/msys /msys

    で、mountの出力はこんなの
    D:\TEMP on /tmp type user (binmode,noumount)
    c:\MinGW on /mingw type user (binmode)
    C:\msys on / type user (binmode,noumount)
    C:\msys on /usr type user (binmode,noumount)
    c:\msys on /msys type user (binmode)
    c: on /c type user (binmode,noumount)
    d: on /d type user (binmode,noumount)
    f: on /f type user (binmode,noumount)

    gccとか動くの?

    292 = :

    説明下手ですいません。
    まず、msys*.exeが無いので困ったのですが、msysCORE-1.0.11-2007.01.19-1.tar.bz2
    を入れたところ、shellの起動が可能になりました。
    その後、make install出来る環境が出来たのですが、入れたはずのbinaryが無かったり
    エラーを吐きまくったりしたのでmount情報を見たところ、/usr が / にmountされていて、
    pathの整合性が取れていない状態になって今に至ります。
    mountの出力は>>291さんと同じような感じです。

    C:\DOCUME~1\hara\LOCALS~1\Temp on /tmp type user (binmode,noumount)
    c:\msys\mingw on /mingw type user (binmode)
    c:\tools on /usr/local type user (binmode)
    C:\msys on / type user (binmode,noumount)
    C:\msys on /usr type user (binmode,noumount)
    c: on /c type user (binmode,noumount)
    d: on /d type user (binmode,noumount)
    z: on /z type user (binmode,noumount)

    これがおかしいと思うのですが。cd /usrとしても/に戻ってきてしまいます。
    > C:\msys on / type user (binmode,noumount)
    > C:\msys on /usr type user (binmode,noumount)

    win上のc:\msys\usr\binと、shell上の/usr/binが別の場所を指してしまいます。
    c:\msys\usr\binにはcvs.exeやmake.exe,msys-z.dllが入っていてshell上でcvs
    が実行出来ない状態です。

    win上のc:\msysが、/ だと思っていたので、ここでお手上げになりました。c:\msys
    は / なのでしょうか?/usrなのでしょうか?

    293 = :

    普通に置いてあるだろ…
    http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe

    294 = :

    んーと msys だと /usr も / も msys にマウントされるみたいなのよ
    だから /usr/bin は /usr の下つまり msys の下だから msys\bin になる
    違和感を覚えるけど
    まあそういうものみたいだと割り切ってるけど

    295 = :

    質問ですが、MinGWで関数名の最後に@XXがついていないDLLを使用するにはどうすればよろしいでしょうか?
    @XXのないDLLを作成するのは-kオプションでできますが、それをMinGWから利用しようとするとundefined referenceと出てしまいます。
    DLLをコンパイルするときに-kオプションをつけなければ難なく呼び出せます。
    呼び出し規約はstdcallです。IDEはDev-C++を使っています。
    どうしても@XX以降をなしにしたいです。

    297 = :

    反応遅くてすいません。さすがに会社から書き込みはしないようにしてるので。

    >>293
    すみません。1.1.11は正式リリースでは無いんですね。1.1.10を入れれば何も
    問題は無かったようで。

    >>294
    環境が落ち着いたらsrcからbuildで/binにインストールされますが、最初に
    幾つかbinaryでwinからインストールした時には。c:\msys\usr\binにコピー
    していたので混乱しました。入っているはずのperlが無いとかzlibが無いとか
    言われ、面倒なのでwinから見たc:\msys\usr以下を全てc'\msysへ移動さ
    せました。これで今のところ問題は出なくなったのですが、/bin=/usr/binは、
    やはり違和感有りますね。別途mountしないと、/usr/localがc:\msys\local
    になるので、やはり直せるもので有れば直したいところです>mount情報。

    299 = :

    MinGWをコンパネのプログラムの追加と削除でアンインストール(MSYS含む)
    したんだけど、フォルダとその中身が消えね。
    誰か正しいアンインストールの方法おしえテルミー。
    レジストリもなんかいじってんのかな?

    300 = :

    フォルダとその中身を消せばいいんじゃね?


    ←前へ 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 + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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