私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレCygwin + MinGW + GCC 相談室 Part 3
gcc スレッド一覧へ / gcc とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 : ★
レスフィルター : (試験中)
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参照)
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参照)
cygwinでtgifを使いたいです。
そこで、こちらのサイトを参考にしました。
Cygwin + X + 日本語アプリケーション
http://www.eaflux.com/cygwin-xfree-jp-supplement/
おそらくインストールは完了したとは思います。
でも、いざ実行しようとしたら
Error: Can't open display:
とエラーが表示されます。どうすれば解決できるでしょうか?
そこで、こちらのサイトを参考にしました。
Cygwin + X + 日本語アプリケーション
http://www.eaflux.com/cygwin-xfree-jp-supplement/
おそらくインストールは完了したとは思います。
でも、いざ実行しようとしたら
Error: Can't open display:
とエラーが表示されます。どうすれば解決できるでしょうか?
>>253
つ[DISPLAY]
つ[DISPLAY]
xならdisplay接続先のXサーバがあるわけで、それを指定するには大抵DISPLAY環境変数を使うわけだ。
Xサーバがローカルなら、DISPLAY環境変数に":0.0"でも設定しておけばいいはずなんだが。
もしXの環境構築の経験がないなら、LinuxでもMacでもSolarisでも一度その辺りを覗いてきたら?
Xサーバがローカルなら、DISPLAY環境変数に":0.0"でも設定しておけばいいはずなんだが。
もしXの環境構築の経験がないなら、LinuxでもMacでもSolarisでも一度その辺りを覗いてきたら?
詳しい解説ありがとうございます。
残念ながら全く理解できません。
私は環境構築とかのレベルじゃないようです。
失礼しました・・・。
残念ながら全く理解できません。
私は環境構築とかのレベルじゃないようです。
失礼しました・・・。
前の方でglutの話が出てたのでメモ
http://mywebpage.netscape.com/PtrPck/glut.htm
http://mywebpage.netscape.com/PtrPck/glut.htm
>>259
試したことねーけど普通に使えると思うよ
gdiplus.dllに入ってるのはflat APIとよばれる普通のCインタフェースで
それをC++のヘッダに書かれたクラス群でラップしてるだけだから
リンケージやABIまわりの問題は無いはず
試したことねーけど普通に使えると思うよ
gdiplus.dllに入ってるのはflat APIとよばれる普通のCインタフェースで
それをC++のヘッダに書かれたクラス群でラップしてるだけだから
リンケージやABIまわりの問題は無いはず
>>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;
サンクス。
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;
すいません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
これ何すか?
プロジェクトを作るとすぐに警告が出ててできません。
どうすればなおるでしょうか?
調べてもわからんかったので聞きたいんだけど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
これ何すか?
プロジェクトを作るとすぐに警告が出ててできません。
どうすればなおるでしょうか?
Windows上でGtkmm使ったプログラムを創ろうとしています
Cygwin環境でやるのがいいか
Mingw環境でやるのがいいか
それともネイティブがいいのか
迷っています
Cygwin環境でやるのがいいか
Mingw環境でやるのがいいか
それともネイティブがいいのか
迷っています
>>265
迷う程度の知識レベルなら止めた方がいいと思います。
迷う程度の知識レベルなら止めた方がいいと思います。
cygwin環境のgccで.cをコンパイルしたんですが、実行している途中
タスクマネージャで実行プロセスを見ると最大使用メモリ量と使用メモリ量が同じでした。
これは使用メモリ量の制限によって処理速度が落ちていると考えてよろしいでしょうか?
時間のかかる処理なので少しでも速くしたいのですが、解決策はありますか?
regtoolでcygwinの最大メモリを増やすのは試しましたが、見当違いだったようです。
タスクマネージャで実行プロセスを見ると最大使用メモリ量と使用メモリ量が同じでした。
これは使用メモリ量の制限によって処理速度が落ちていると考えてよろしいでしょうか?
時間のかかる処理なので少しでも速くしたいのですが、解決策はありますか?
regtoolでcygwinの最大メモリを増やすのは試しましたが、見当違いだったようです。
>>268
そもそもメモリが足りなければ、GCCは落ちると思う。
タスクマネージャのヘルプによれば、
最大使用メモリ量は、プロセスが開始してからのメモリ使用量のピーク値。
だから、これが使用メモリ量と同じだったからといって、足りていないということではない。
そもそもメモリが足りなければ、GCCは落ちると思う。
タスクマネージャのヘルプによれば、
最大使用メモリ量は、プロセスが開始してからのメモリ使用量のピーク値。
だから、これが使用メモリ量と同じだったからといって、足りていないということではない。
Cygwinではstrdup関数はどこのフォルダのどのファイルに定義されていますか?
string.hでは宣言のみでした。
string.hでは宣言のみでした。
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)
#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)
MinGW-5.1.3とgcc-3.4.5でSTLport-5.1.4を使いたいのだけど、
コンパイル時undefined reference toとか出てきて上手くいかない。
(-lstlport.5.1とかやってるにも関わらず)
上手く動いている方、インストールの手順を教えてくれませんか?
コンパイル時undefined reference toとか出てきて上手くいかない。
(-lstlport.5.1とかやってるにも関わらず)
上手く動いている方、インストールの手順を教えてくれませんか?
>>277
configure してる?
configure してる?
MinGWのGCC使ってOpenGLのプログラム書いてるんだけど
なんかgl.libとかglu.libがないような気がするんだが。
undefined reference to wglCreateContext@4 とか出るし。
なんかgl.libとかglu.libがないような気がするんだが。
undefined reference to wglCreateContext@4 とか出るし。
>>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'
(以下略)
それは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'
(以下略)
解決した。
-oオプションが抜けてた。orz
けど、プログラムの先頭に
#define _STLP_USE_STATIC_LIB
と書いてもダイナミックリンクになってしまうんだがこれってmingwの使用か?
-oオプションが抜けてた。orz
けど、プログラムの先頭に
#define _STLP_USE_STATIC_LIB
と書いてもダイナミックリンクになってしまうんだがこれってmingwの使用か?
先日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)
です。
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)
です。
オウ・・無いですね
手打ちで追加してみたんですがどうもうまくいかないのですが
cygwinでコンパイルするにはどうすればいいのでしょう?
手打ちで追加してみたんですがどうもうまくいかないのですが
cygwinでコンパイルするにはどうすればいいのでしょう?
PCクラッシュをきっかけに、MP4Boxのbinaryを探していたら、GPACの公式にてLisence問題?
でSourceのみの配布に変わっていた為、初めてMinGW+MSYSな環境を立ち上げようとして
います。
SourceForgeから必要最低限のbinaryを取ってきたのですが、MSYS*.exeが見つかりません。
それでも何とかshellが動作するようになったのですが、/ に本来Installしたフォルダとは別に
/usrも後からmountされてしまいます。fstabにはその様な記載はしておらず、レジストリに
情報が無いかと検索を掛けてみてもmount情報が見つかりません。予想通り、/usrの下は
/になっており、コマンドのpathが通らなくて目的のbinatyがbuild出来ない状況です。
mount情報には、fstab以外の情報も有るところを見ると、何処かで設定していると思ってい
るのですが、自分の力不足で見つけることが出来ず困っております。レベルの低い質問で
申し訳有りませんが、情報、「スレ違いだから***で聞け!」等、アドバイス頂けないでしょ
うか。
でSourceのみの配布に変わっていた為、初めてMinGW+MSYSな環境を立ち上げようとして
います。
SourceForgeから必要最低限のbinaryを取ってきたのですが、MSYS*.exeが見つかりません。
それでも何とかshellが動作するようになったのですが、/ に本来Installしたフォルダとは別に
/usrも後からmountされてしまいます。fstabにはその様な記載はしておらず、レジストリに
情報が無いかと検索を掛けてみてもmount情報が見つかりません。予想通り、/usrの下は
/になっており、コマンドのpathが通らなくて目的のbinatyがbuild出来ない状況です。
mount情報には、fstab以外の情報も有るところを見ると、何処かで設定していると思ってい
るのですが、自分の力不足で見つけることが出来ず困っております。レベルの低い質問で
申し訳有りませんが、情報、「スレ違いだから***で聞け!」等、アドバイス頂けないでしょ
うか。
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とか動くの?
俺の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とか動くの?
説明下手ですいません。
まず、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なのでしょうか?
まず、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なのでしょうか?
んーと msys だと /usr も / も msys にマウントされるみたいなのよ
だから /usr/bin は /usr の下つまり msys の下だから msys\bin になる
違和感を覚えるけど
まあそういうものみたいだと割り切ってるけど
だから /usr/bin は /usr の下つまり msys の下だから msys\bin になる
違和感を覚えるけど
まあそういうものみたいだと割り切ってるけど
質問ですが、MinGWで関数名の最後に@XXがついていないDLLを使用するにはどうすればよろしいでしょうか?
@XXのないDLLを作成するのは-kオプションでできますが、それをMinGWから利用しようとするとundefined referenceと出てしまいます。
DLLをコンパイルするときに-kオプションをつけなければ難なく呼び出せます。
呼び出し規約はstdcallです。IDEはDev-C++を使っています。
どうしても@XX以降をなしにしたいです。
@XXのないDLLを作成するのは-kオプションでできますが、それをMinGWから利用しようとするとundefined referenceと出てしまいます。
DLLをコンパイルするときに-kオプションをつけなければ難なく呼び出せます。
呼び出し規約はstdcallです。IDEはDev-C++を使っています。
どうしても@XX以降をなしにしたいです。
解決しました。
モジュール定義ファイルに@XXつきの関数を列挙してそれを元にdlltoolしたところ問題なくできました。
モジュール定義ファイルに@XXつきの関数を列挙してそれを元にdlltoolしたところ問題なくできました。
反応遅くてすいません。さすがに会社から書き込みはしないようにしてるので。
>>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情報。
>>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情報。
MinGWをコンパネのプログラムの追加と削除でアンインストール(MSYS含む)
したんだけど、フォルダとその中身が消えね。
誰か正しいアンインストールの方法おしえテルミー。
レジストリもなんかいじってんのかな?
したんだけど、フォルダとその中身が消えね。
誰か正しいアンインストールの方法おしえテルミー。
レジストリもなんかいじってんのかな?
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / gcc スレッド一覧へ
みんなの評価 : ★類似してるかもしれないスレッド
- Cygwin + MinGW + GCC 相談室 Part 8 (938) - [97%] - 2022/10/28 8:00
- Cygwin + MinGW + GCC 相談室 Part 7 (996) - [97%] - 2014/9/21 2:15
- Cygwin + MinGW + GCC 相談室 Part 6 (981) - [97%] - 2012/12/30 23:15
- Cygwin + MinGW + GCC 相談室 Part 5 (981) - [97%] - 2011/4/6 2:32
- Cygwin + MinGW + GCC 相談室 Part 4 (1001) - [97%] - 2010/3/23 18:31 ☆
- 【激遅】AppleGCC【絶望】 (111) - [1%] - 2010/1/15 10:31
トップメニューへ / →のくす牧場書庫について