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

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

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

1 = :

Windows上で動作するフリーの開発環境 CygwinとMinGWに関する相談スレッドです。

過去スレ:
cygwin + mingwn + gcc 相談室 Part3
http://pc11.2ch.net/test/read.cgi/tech/1177944767/
cygwin + mingwn + gcc 相談室 Part2
http://pc11.2ch.net/test/read.cgi/tech/1126103347/
cygwin + mingwn + gcc 相談室
http://pc8.2ch.net/test/read.cgi/tech/1058134693/

関連サイト:
Cygwinhttp://www.cygwin.com/
MinGWhttp://www.mingw.org/

関連スレッド:
GCCについて part8
http://pc11.2ch.net/test/read.cgi/tech/1192201659/
【激遅】AppleGCC【絶望】
http://pc11.2ch.net/test/read.cgi/tech/1173267844/

2 = :

CygwinとMinGWを同時にインストールするのは混乱の元になるので止めましょう。

3 = :

qt4のために入れざるを得なかったんだ

4 = :

標準でGCC 4が入るときは来るのか。
まともなlocale対応が入るときは来るのか。

5 = :

>> 1 乙です
それにしても1000過ぎたら落ちるの速すぎだなあ

6 = :

↓のGCC使ったやり方でFireFOXビルドできない><
http://developer.mozilla.org/en/Compiling_Mozilla_With_Mingw

8 = :

3だよっ!

9 = :

エラーはどんなのがでるの?

10 = :

>>6
この文書は 2007 年 3 月の MozillaBuild システム導入前の Mozilla 1.9 コードベースをビルドするためのビルド要件のガイドです。Firefox 1.5.0.10 以上、Firefox 2.0.0.2 以上、Firefox 3 をビルドする場合は標準的な Windows ビルド要件 を見てください

11 = :

それちがうやん

15 = :

mingw版gccで
#include<iostream>

int main(){
cout<<"こんにちは";
}
とするとちゃんと日本語表示される?
されないなら、対処法は?


17 = :

>>15
ソースコードをシフトJISで書いたなら --input-charset=cp932 を指定する
cp932 で読み込まれて内部では utf8 になるらしい、んで
吐き出される文字リテラルはデフォルトで utf8 なんだとさ
それをシフトJISにしたいなら --exec-charset=cp932 を指定する
g++ --input-charset=cp932 --exec-charset=cp932 hogehoge.cpp -o hogehoge.exe
こんなかんじka よくしらんがてきとう

19 = :

デフォルトでチェックはずれてたか、別パッケージだった希ガス

23 = :

rubyをC++に組み込もうとしているのですがうまく行きません。板違いかなとも
思うのですが、MinGWでコンパイルエラーが出ていて、この部分さえクリアできれば
いけそうなので質問させてください。
エラーは、
newmain.cpp:31: error: invalid conversion from `VALUE (*)(VALUE)' to `VALUE (*)(...)'
newmain.cpp:31: error: initializing argument 3 of `void rb_define_method(VALUE, const char*, VALUE (*)(...), int)'
newmain.cpp:32: error: invalid conversion from `VALUE (*)(VALUE, VALUE)' to `VALUE (*)(...)'
newmain.cpp:32: error: initializing argument 3 of `void rb_define_method(VALUE, const char*, VALUE (*)(...), int)'
というものです、でVALUEは、
typedef unsigned long VALUE;
と宣言されています。ご教示お願いします。

24 = :

>>23
エラーだけじゃなくてコードも見せなさいな。

25 = :

>>24
こんな感じです。ruby付属のドキュメントの例のまんまなんですが、コンパイルが
通らないんです。

#include <ruby/ruby.h>
static VALUE t_init(VALUE self)
{
VALUE arr;
arr = rb_ary_new();
rb_iv_set(self, "@arr", arr);
return self;
}
static VALUE t_add(VALUE self, VALUE anObject)
{
VALUE arr;
arr = rb_iv_get(self, "@arr");
rb_ary_push(arr, anObject);
return arr;
}
VALUE cTest;
void Init_Test() {
cTest = rb_define_class("Test", rb_cObject);
rb_define_method(cTest, "initialize", t_init, 0); ←エラーが出てる箇所
rb_define_method(cTest, "add", t_add, 1);     ←エラーが出てる箇所
}

で、関数の宣言は
void rb_define_method(VALUE,const char*,VALUE(*)(ANYARGS),int);
となっています。引数のANYARGSの宣言は以下です
#define ANYARGS ...

26 = :

第3引数が、可変長引数の関数ポインタを受け取るということだとは思うのですが、
なぜエラーになってしまうのでしょうか?

27 = :

rubyか...
Rubyスレで聞くと良いんじゃね

28 = :

>>27
rubyというよりもC++の問題かなと。でエラーが関数ポインタ周りだということで
簡単なソース作ったんですが、
#include <iostream>
#include <cstdarg>

using namespace std;

static void func(int n,int a,int b,int c) {
int v = a+b+c;
cout << v << endl;
}

int main() {
void (*p)(int,...)=func;
p(3, 1, 3, 5);
return 0;
}
とすると、
newmain.cpp:12: error: invalid conversion from `void (*)(int, int, int, int)' to `void (*)(int, ...)'
というエラーが出ます。
ちなみに、
int main() {
func(3, 1, 3, 5);
return 0;
}
だと、ちゃんと動いてくれます。
可変長引数の関数ポインタの中に、引数の数が決まった関数をぶち込むのに
なぜエラーが出てしまうのかが分かりません。

29 = :

そりゃそうだ。
誤った引数を与えられるようになるから、そんな変換は認められない。
reinterpret_cast使え。

30 = :

「可変長rリスト型」の引数の関数ポインタと、「int型の引数4つ」の関数ポインタだからだろ。
ruby脳の状態でC++使うからそうなる。使う言語に応じてちゃんと脳みそと知識を切り替えろ。

31 = :

実際試してみるのにrubyをコンパイルしなおしたり色々していてやっとで出来ました。
>>29
reinterpret_cast使ったら一発でいけました。ありがとうございます。
>>30
ruby歴1日もないような気がしますorz どちらかと言うとPython脳です。
rubyとpythonの組み込みは、どちらが簡単かなと試していたら嵌ってしまって
質問させて頂いた次第です。お騒がせしました。

33 = :

引数順が分かってる分には問題ないよ
型チェック機構は働かないけどね

34 = :

>>33
そうなんだ。ありがとう

35 = :

3 [main] ? 3084 init_cheap: Couldn't reserve 3600336 bytes of space for cy
gwin's heap, Win32 error 487
C:\cygwin\lib\gcc\i686-pc-cygwin\3.4.4\cc1.exe (3084): *** AllocationBase 0x0, B
aseAddress 0x61820000, RegionSize 0x360000, State 0x10000

こんなエラーが出てしまいました。
gccによるコンパイル時です。
単に gcc とやったときにはno input fileと出るのでインストールはされているようです。

36 = :

うん、マルチは死ね

37 = :

>>35
http://www.madwizard.org/electronics/articles/winavrvista

41 = :

で?

42 = :

ME使いなんですか?

43 = :

MinGW+MSYSなんだが、>>35みたいなエラーがでるんで
rebasedのmsys-1.0.dllやらbash3.1を導入したら
AllocationBaseうんちゃらは出なくなったが、
configureやmakeでSegmentation faultが発生しまくるようになった。
しかも発生するところは実行するたびに変わるという鬼畜っぷり
これはどうすればいいんすか?環境はXP SP3です。

44 = :

ベースを替えたんなら、変えたベースに合わせてビルドされた
バイナリを使えばいいのでは

45 = :

いろいろがんばってみたけど分からんです
海外のBBSを漁ってたら同じような現象が起きてるみたいで
それの回答は「トロイ感染してんじゃね?」だった
でもウイルス見つからなかったし、OSのどっかが壊れてるのかもしれない

46 = :

このスレに質問すればいいのか分かりませんが、
CygwinにGCC4.3.2を入れようと思って、ソースからビルドしたのですが、
libstdc++のところでコケちゃって、
/cygdrive/c/DOCUME~1/Admin/LOCALS~1/Temp/ccNICzCd.s:11: Error: unknown pseudo-op: `.symver'
/cygdrive/c/DOCUME~1/Admin/LOCALS~1/Temp/ccNICzCd.s:12: Error: unknown pseudo-op: `.symver'
……
/cygdrive/c/DOCUME~1/Admin/LOCALS~1/Temp/ccNICzCd.s:41: Error: unknown pseudo-op: `.symver'
というエラーが出ます。
おかげで、iostreamを使ったHello, worldすらリンクに失敗して困っております。
(printfを使ったHello, worldなら問題なくビルドできます)

どのような対策を講じればよいでしょうか?
ちなみに、以前にもGCC4.3.0を自力で入れたことがあって、
そのときはこのような問題は出ませんでした(表面化しなかっただけ?)

47 = :

>>46
それ、asが出してるエラーだから、binutilsの問題かも?

49 = :

gcc4をsetup.exeで入れてみたら?

50 = :

>>49
cygwinにgcc-4あったんですね、知りませんでした。
どうもありがとうございます、とりあえず目前の問題は解決しました。


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

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


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