cygwin + mingwn + gcc 相談室

このエントリーをはてなブックマークに追加
VC や C++ Builder には専用スレがあるのに
俺たちにないのは変だろ?
とりあえず、2ゲット!!
関連すえ
GCCについて part2
http://pc2.2ch.net/test/read.cgi/tech/1046179115/
4デフォルトの名無しさん:03/07/14 07:37
ld でリンクしようとすると

cygwin_crt0
__gxx_personality_v0

とかがリンクされてないってエラーがでるYO!
なんで?
削除おながいします
7山崎 渉:03/07/15 09:47

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
Model View Controller〜♪
9デフォルトの名無しさん:03/07/21 05:25
こいつをなんとかしてくれ!
http://pc2.2ch.net/test/read.cgi/tech/1046179115/384-
10デフォルトの名無しさん:03/07/21 07:05
あのさ、なんでわざわざWindowsでそんなもの動かす必要があるの?
馬鹿じゃないの?
以上
放置で
12山崎 渉:03/08/02 02:28
(^^)
Model View Controller〜♪
14山崎 渉:03/08/15 16:52
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
保守
16デフォルトの名無しさん:03/08/25 22:12
糞だろ
17デフォルトの名無しさん:03/08/25 23:48
フリーでスーパーな感じがいいよね、わださん。ヘラヘラ
18NTT ◆mkI1IRzwxc :03/10/24 17:33
>>10
初心者ですね(ゲラ
みんぐうん
20 :03/12/11 16:40
ttp://www-cms.phys.s.u-tokyo.ac.jp/〜naoki/CIPINTRO/XLIB/xlib2.html
↑のソースをcygwinでコンパイルしました.
しかし実行すると core dump してしまいます.
詳しい方ご教授願います.
win = XCreateSimpleWindow( dis, RootWindow(dis,0), 100, 100,
256, 256, 3, WhitePixel(dis,0), BlackPixel(dis,0) ); //窓の生成

のところで駄目になってしまうようです.
disがNULLになってるんだろ。
Xサーバは動いてるのか?
22デフォルトの名無しさん:03/12/14 19:50
この環境でもドライバって作成できますか?
できる
24デフォルトの名無しさん:03/12/15 16:39
cygwinを使用します。

メーク条件の欄に
インストールディレクトリ:/usr/local/h8
とあったらlocalフォルダの中にh8フォルダを作っておくのですか?
試してみればいいだろっていうレベルの話しだが、そんな必要は無い。

http://pc2.2ch.net/test/read.cgi/tech/1046179115/978だと思うけど、エラーが出たならその
メッセージを編集無しで貼り付けた方が早いぞ。お前さんの状況分析が混じってると、きっと
答えからは遠のくだけだ。
2624:03/12/16 01:13
>>25
その人俺です。エラー出まくりです。

Cコンパイラーを使ってmotファイルを作りたいんですが
うまくコンパイルすることが出来なくて・・・って感じです。
原因がわから無くて困っています。

既定@OEMCOMPUTER/home/h8mb
$h8300-hms-gcc -O -mh -mint32 -r -fno-common -o h8mb h8mb.c
と打つと
h8mb.c:4 3048f.h No such file or directory
と出ます。

No such fire or directoryって事はh8mbディレクトリに3048.fの
ヘッダーファイルを入れるということなのでしょうか?
あんた、全然ダメ。何処からか持ってきた何かをコンパイルしようとしているんだろうけど、
ちゃんと元ネタのドキュメントなりなんなりを読めよ。Makefileは無いのか?
そもそもそのアーカイブなりなんなりに3048f.hとやらは入ってんのか?

そのディレクトリに3048f.hを置くとか、h8mb.cの4行目 #include "3048f.h"
(#include <3048f.h> かも) の3048f.hをフルパスで書くか、3048f.hがあるディレクトリを
/h8/include だとしたら、 コンパイルオプションに -I/h8/include を付ければ、
一応 3048f.h No such file or directoryを回避することだけは出来るはずだ。

おそらくここをパスしても、こんな調子じゃフラッシュに書きこむまでに何度も引っかかるだろう。
普通のCコンパイラの使い方すら怪しいのに、クロス開発しようってんだから…。
スタートアップ、リンカースクリプトって知ってる?
28デフォルトの名無しさん:03/12/17 23:39
良スレの予感
すいません質問です

ttp://www.center.wakayama-u.ac.jp/~tokoi/opengl/libglut.html
上のOpenGL入門サイトで勉強中の身です
$ g++ test.cpp -DWIN32 -lglut32 -lglu32 -lopengl32
上のコマンドでtest.cpp(上記サイトの4.1)をコンパイル、a.exeを実行すると、
終了させても、タスクを見るとAというのが残っています
こいつを出したく無いのですが、どうすればいいでしょうか。
PRIN書き込みテスト
3129:03/12/22 11:32
解決しました
無視してください
どうやって解決したんだよ。俺は>>29を読んで以来、本当にそんなことが起きるのか、
起きるとしたら何が問題なのか気になっていた。「どうすればいいでしょうか」なんて
書いておいて、自分の用さえ済んだら「無視してください」かよ。
33デフォルトの名無しさん:03/12/23 22:17
相談というか質問です。今、がんばってsygwinでgccまではできたのですが、./a.outが実行できません。
これをするには何をインストールしなければならないのでしょうか?
>>33
sygwinを消して
>>33
拡張子がexeじゃないから実行されない。

>gcc(MinGW版、Cygwin版共通)では、 gcc samp.c でコンパイル可能です。
>出力ファイル名は a.exe ですので、 a で実行できます。
>gcc samp.c -o samp で、ファイル名 samp.exe になります。

拡張子はexeじゃなくても実行できるよ
3729:03/12/24 09:37
>>32
くーーーーーー

29はただ単にプログラムを実行すると、
プログラム(a.exe)とは別にDOS窓が開くというだけでした。
ですが、コンパイル・実行ともにrxvtから行っていたので
非表示化されたDOS窓(タイトルはA)がどんどん溜まっていたようです
38目から角膜が剥がれる思いです。:03/12/24 11:25
初めて知りました。赤面の至りです。

今月号の日経ソフトウエア(1月号) プログラマ向けフリーソフト大集合において

Mingwを「ミン・ジー・ダブリュー」と読むと書いてありました。
私は「ミングー」とばかり思っていました。恥ずかしくて、穴があったら挿入したいくらいです。

Cygwinはキグナスソリューションが開発したので「キグウイン」と思っていたら。
「シグウイン」なんですね。でも、弁明ではありませんが、綴りの上では「サイグイン」の方が
正しい英語読みのような気がします。
>>38
Cygnus の英語読みはシグナス。
Mingw はミングーでも別にいいと思うぞ。
日経については、あんまし気にすんな。
人に通じれば何でもいいんだよ
pingをピングと読むようなものだ
41デフォルトの名無しさん:03/12/25 07:54
聖闘士聖矢では「キグナス氷河」だったけど、今英和辞典で調べたら
確かに「シグナス」と発音記号が書いてあった。トリビア〜
英語でcyを「キ」と読む単語ってなんかある?
Cymry
cymchi
cychigai
キグナス石油は Kygnus 。
47デフォルトの名無しさん:04/01/04 21:18
どこにも書いてないんですが
cygwinって何の略なんですか?
cygnus + windows = cygwin
4947:04/01/04 21:25
>>48
なるほど!
サンクスコ!!
>>43
Cymryってもしかしてウェールズ語でウェールズを意味する単語かね?
だとするとキムリではなくカムリという発音になるぞ(w

って、すれ違いだな。

if ( (blankLines !=0 ) && ( linesToScroll < 0 ) || (updateScrollbar != 0 ) ) {

この様に記述している箇所で下記のようなWarningが出ます。
どこがいけないのでしょうか。

Address.c:2321: warning: suggest parentheses around && within ||
「A && B || C」は「(A && B) || C」だか「A && (B || C)」だか判りづらいんで、
明示的に括弧でくくって判りやすくした方がいいよん、って事かと。
>>52
ありがとうございました。
初心者の質問ですみません
Cygwinで以下のtst1.cとtest2.cをmakeさせようと思ったのですが

undefind reference to _test2
collect2: ld returneed 1 exit status
make: *** [test1] Error 1

とエラーメッセージが出てきます。何がいけないのでしょうか?
環境はWindowsXPにCygwinのver1.5.5-1をインストール
(PythonとGame以外全部)したものです。
5554:04/01/12 10:52
test1.c

#include <stdio.h>

main(){
printf("test1\n") ;
test2() ;
return 0 ;
}


test2.c

#include <stdio.h>

void test2(){
printf("test2\n") ;
}


Makeflie

test1: test1.o test2.o
gcc -o test1 test1.o test2.o -lm
>>55
そのmakeってオブジェクトファイルが更新されないとコンパイルされなく無くないの?
cygwinのバージョン確認ってどうすればいいんですか?
>>55
> Makeflie
これとか。
Dev-C++日本語化パッチ
http://wide-ben.hp.infoseek.co.jp/
>>58
がーん。
誠にありがとうございまつ。釣ってきまつ。

>>57
インストーラを起動し、
「Select Packages」の所で
「Base」カテゴリを広げて表示すると
「Package」が「Cygwin」の所があるはずでつ。
その「Current」の数字がバージョンだそうでつ。
>>57
uname -r
ところで、mingwnって何よ?
>>62
確かに、ぐぐっても不明だ!
mingwだろ?
スレ立てたやつアホだな。
65デフォルトの名無しさん:04/01/19 00:43
vc++のインラインアセンブラをg++で書き直しているのですが、
vc++の
push offset LABEL_HOGE は
g++だとどう書けばいいのでしょうか?
push (LABEL_HOGE)
かなと思ったのですけど違うみたい。
asm("push $LABEL_HOGE");
【SFU3.5】WindowsはUnix!?【無償提供】
http://pc.2ch.net/test/read.cgi/prog/1074286925/
次のウインドウズからこれ標準搭載らしいけど

cygwinとどっちがいいのかな?
6865:04/01/19 22:45
>>66
できたー。ありがとう。
6965:04/01/21 18:38
質問です。windowsで g++ (GCC) 3.2 20020927 (prerelease)を使ってます。
ある関数内のインラインアセンブラ内のラベルへ別の関数からjmpしようとすると
全然違う所(今は__ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x44)へ
飛ぼうとしている命令が生成されてしまいます。

別の関数内へのラベル自体が取れないのかと思ったら、最小限の構成のプログラムでテストすると
ちゃんと正しいアドレスへ飛ぶ命令になっているのです。
これはgccのバグだと考えていいのでしょうか?
それともセグメントレジスタ等が関係あるのでしょうか
(32bitのx86でセグメントレジスタ群に何の意味があるのか理解してないので、その関係かな?と)
どなたかよろしくお願いします。
>>69
> 別の関数からjmp
んなことしてちゃんと動くと思う方がおかしい
7169:04/01/21 20:10
>>70
実行時の動作ではなくてアセンブル結果がおかしいのです。
そのままでは実行時にespやebp等がおかしいのは理解しています(その対策はしています)

Cの関数名と同レベルに扱われるアセンブラのラベルへのjmpがおかしい事の理由がわからないのです。
一番おかしいのは、
なにをどうやってどうおかしいと判断したか根拠も示さず
コンパイラを疑う69の脳味噌。
Cに於いてコンピュータ内部の振る舞いを知ることは禁忌とされている

byFAQ
>>72
>なにをどうやってどうおかしいと判断したか根拠も示さず
# 別の関数内へのラベル自体が取れないのかと思ったら、最小限の構成のプログラムでテストすると
# ちゃんと正しいアドレスへ飛ぶ命令になっているのです。

>コンパイラを疑う69の脳味噌。
# それともセグメントレジスタ等が関係あるのでしょうか
「最小限の構成のプログラム」とやらがなきゃ再現試験すらできないだろが
>>75
ごめんなさい。うまくいく例は当たり前すぎて書くまでもないかと思ってしまっていました。
うまくいかない例は大きすぎて書けません。

void Func1()
{
printf("Func1\n");
asm volatile
(
"LabelA: \n\t"
);
printf("Leaving Func1\n");
}

void Func2()
{
printf("Func2\n");
asm volatile
(
"jmp LabelA \n\t"
);
printf("Leaving Func2\n");
}

int main()
{
Func1();
Func2();
return 0;
}
7776:04/01/21 23:37
書き忘れていた事がありました。
-S で出力したアセンブリでは正しいラベルが使われています。
アセンブル後のオブジェクトを objdump した時点で、
見当外れなアドレスに置き換えられています。
よろしくお願いします。
>>77
gcc -S でコンパイルだけしたものを一度ファイルに落としてそれをアセンブルしたらどうなるか、とか
objdump -d で逆アセンブルしたものの当該部分を晒してみる、とか
やるべきことはもっとあるだろ
さすがにリンク前の.oファイルを見ているということはないだろうな…
8076:04/01/23 01:19
すいません。今日から仕事が俄然忙しくなってしまい、しばらく
検証すらできません。また時間が出来次第
自力で色々やってみて、結果なり追加の質問なりさせていただきたいと思います。

>>78
ありがとうございます。アセンブリソースに落としてからアセンブルする方法も
ほんのちょっとの手間なので今出来ない事もないのですが、
今やりはじめたら絶対明日に響いてしまうので余裕が出来てからやってみる事にします。

>>79
objdump は .o に対してやっているのですが、間違いでしょうか?
実行してレジスタ経由でprintfしてみると正しくjmpできる部分では
objdump の出力と同じアドレス値になっており、
落ちるところではやはりおかしな(だけどobjdumpの出力結果とあっている)
アドレス値になっております。
>>80
> objdump は .o に対してやっているのですが、間違いでしょうか?
> objdump は .o に対してやっているのですが、間違いでしょうか?
> objdump は .o に対してやっているのですが、間違いでしょうか?
> objdump は .o に対してやっているのですが、間違いでしょうか?
> objdump は .o に対してやっているのですが、間違いでしょうか?
> objdump は .o に対してやっているのですが、間違いでしょうか?
> objdump は .o に対してやっているのですが、間違いでしょうか?
> objdump は .o に対してやっているのですが、間違いでしょうか?
> objdump は .o に対してやっているのですが、間違いでしょうか?
> objdump は .o に対してやっているのですが、間違いでしょうか?
>>81
オブジェクトファイルが一つだけの場合
cygwin でのアセンブルについて質問です
今アセンブラを使ってスクリプトエンジンを作ろうと思うのですが、
C言語のプリプロセッサ機能を使うことはできないのでしょうか?
infoくらい読め。

You can do
include file processing with the `.include' directive (*note
`.include': Include.). You can use the GNU C compiler driver to get
other "CPP" style preprocessing, by giving the input file a `.S'
suffix.

あとMASM系とは違うが一応マクロ機能がある。
manでさえそれぐらいのことは書いてある。

  -x language
      Specify explicitly the language for the following
      input files (rather than choosing a default based
      on the file name suffix) . This option applies to
      all following input files until the next `-x' op-
      tion. Possible values of language are `c', `objec-
      tive-c', `c-header', `c++', `cpp-output', `assem-
      bler', and `assembler-with-cpp'.
86デフォルトの名無しさん:04/01/25 13:18
日本語で書いて無いじゃん
>>85
このオプションの指定って下の通りでよい?

-x c++'

最後の'っているの?
前の`を忘れてるぞ。
こうだ、

`-x' `c++'
>>88
ホントか?w
>>89
manに書いてあるだろ。(w
>>90
だまされんぞ。
本当は -x c++ だろ。w
92デフォルトの名無しさん:04/01/31 22:42
command not found
って出るんですが・・・。
そうですか
94デフォルトの名無しさん:04/02/01 14:10
なんとなくmingwのバグだと思うんですが,どこにバグが存在するか自分には追跡できません.
たとえば以下のようなコードです.
cygwinのg++だとうまく動く(0x0から0xffまで標準出力に出力される)んですが,mingwだと
どうもeofやらfailビットやらのセットの仕方をmingw側がミスってるようなのです.
何か対処法はあるでしょうか.

// ---
#include <iostream>
#include <fstream>

#define DATAFILE "mingw-test.dat"

int main()
{
using namespace std;

// generate data file
ofstream ofs(DATAFILE);
for(int i = 0; i < 256; i++) {
ofs.put(i);
}
ofs.close();

// read data file
ifstream ifs(DATAFILE);
cout << hex;
while(!ifs.eof() && !ifs.fail()) {
cout << ifs.get() << endl;
}
return 0;
}
>>94
ios::binary
もしくはbinmode.oをリンク
9694:04/02/01 14:54
>>95
かなり基本的なミスでしたね….
linuxなどではバイナリモードでなくとも通っていたので油断しました.
ありがとうございました.
97デフォルトの名無しさん:04/02/10 23:22
ちょっと教えていただきたい事があります。
cygwinのg++でinternal compiler errorが出てしまったので
未知のバグなら報告しようと思うんですが、
http://gcc.gnu.org/bugs.html の日本語訳のページとかないでしょうか?
あと英語が苦手な人の為に代わりに報告してくれるグループなんて
どこかにいないんでしょうか?
(もちろん居なければ拙い英語で頑張るつもりですが、送られた方も難読でしょうし)

一応どんな類のバグかというと、
__stdcall の関数の引数にテンプレートクラスを値渡しにするとSegmentation faultという感じです。
g++ (GCC) 3.3.1 (cygming special) で確認しました。
9897:04/02/10 23:24
関係ない補足。
Segmentation fault は実行時ではなくて
コンパイル時にコンパイラがSegmentation faultします。
本当に未知かい?

ttp://gcc.gnu.org/bugzilla/query.cgi
10097:04/02/11 10:36
10197:04/02/11 13:20
バグ報告するとしたら↓みたいなソースをつけて送ればいいのでしょうか?

template <typename T> struct Type{};

void __stdcall func(Type<int>);
//void func(Type<int>);
//void func(int);

int main()
{
 func(0);

 return 0;
}
>>101
リンク通らんもん送ってもいいんかいな。
>>102
逆に、何がイカンのかわからないのだが
10497:04/02/11 13:45
>>102
リンク以前にコンパイルが通らない(コンパイラのバグの為に)ので
いいのではないかと思うのですが。


template <typename T> struct Type { Type(int){} };

void __stdcall func(Type<int>);
//void func(Type<int>);
//void __stdcall func(int);

int main()
{
func(0);

return 0;
}

void __stdcall func(Type<int>) {}

ならいいという事でしょうか?
3.3.2で別に死なないけど文法エラーって出る。
void func (Type<int>) __attribute__ ((stdcall));
こう書くんじゃないの?
10697:04/02/11 14:33
>>105
そうなのですか?
元々コンパイラが内部エラーを起こした所は
#define WINAPI __stdcall
BOOL WINAPI BitBlt(HDC,int,int,int,int,HDC,int,int,Rop);
だったのです(Ropはテンプレート構造体のtypedef)。
gcc付属のwindows.hなどでも
BOOL WINAPI BitBlt(HDC,int,int,int,int,HDC,int,int,DWORD);
となっているので3.3.2で引数の次の __stdcall が文法エラーになると
windows.h は全部書き直しになってしまうような気がするのですが。
10797:04/02/11 14:38
びっくりしたので焦って確認もせずに書き込んでしまいましたが、
やはり __attribute__ ((stdcall)) でも内部エラーになります。

template <typename T> struct Type { Type(int){} };

//void __stdcall func(Type<int>);
void func(Type<int>) __attribute__ ((stdcall));
//void func(Type<int>);
//void __stdcall func(int);

int main()
{
func(0);

return 0;
}

//void __stdcall func(Type<int>){}
void func(Type<int>) __attribute__ ((stdcall)){}
//void func(Type<int>){}
//void __stdcall func(int){}
>>107
3.3.2にバージョンアップしましょう。以上。
俺が使ってるのlinuxのやつだからかな。
それの関数定義を void func(Type<int>) {} に書き換えれば
普通にコンパイルできて実行できる。
>>109
> それの関数定義を void func(Type<int>) {} に書き換えれば
> 普通にコンパイルできて実行できる。
stdcallだとダメって話じゃないの?
111デフォルトの名無しさん:04/02/12 00:51
OracleのPro*Cいける?
>>110
関数自体をその書き方にするとエラーになる。
プロトタイプを変えればちゃんと違ったコードが生成されてる。
すいません、誰か教えてください。
今、WINDOWSME+CYGWINで↓をインストールしたいのですが
ttp://openscenegraph.sourceforge.net/documentation/OpenSceneGraph/doc/index.html
なにをすれば良いのか分かりません。
一応、MAKE GNUMAKEFILE と打ってみたのですが
/usr/local/bin/make: 1: Syntax error: "(" unexpected
というエラーが出てしまいます。
GNUmakefileの中身も載せたほうがいいでしょうか?
俺はそのOSGについては全く知識が無いのだが、
ttp://openscenegraph.sourceforge.net/documentation/OpenSceneGraph/doc/install.html#Cygwin
を読んで、何故「一応、MAKE GNUMAKEFILE と打ってみたのですが」ということになるのか
まるで理解できない。
115デフォルトの名無しさん:04/02/17 23:03
WinXP+CYGWINで

$ ld --nostdlib --oformat binary -s -Ttext ffff0000 -M -e _start test.o
ld: PE operations on non PE file.

となってしまいます。
ちなみにtest.oはアセンブラでioポートに読み書きするだけのものです。
やりたいことは.textを指定してバイナリかsフォーマットにすることです。
できたらbiosromに焼いて電源オンで自分のプログラムしようと思ってます。
どなたか解決方法を教えてください。
>>114も、ごもっともな話だけど、
その前になんで/usr/local/binなんだろうと疑問に思った。
こやつ一体何者?
インストールしたぜ。
VC用makefileを作るautoconfの使い方教えろハート
>>117
wrapmsvc使うとよろし。ライセンス良く知らんから、公開するなら気を付けろ。
間違えた。VC用のmakefileってnmakeのことか。
てっきりgnumakeでcl.exeを使うのかとおもたよ。
>>117
VC用ならhoge.makといったMakefileにすると思うから、
hoge.mak.inという名前でnmake用のMakefile書いて、
AC_CONFIG_FILESで教えておけば良いのでは?
cygwin用にはMakefile.inを書いておいてね &heart;
121115:04/02/18 18:36
redhatでできました
cygwinじゃできないみたいです
g++ (GCC) 3.3.1 (cygming special)でstd::random_shuffle()を
使ったところ全然シャッフルされないんですが…。
↓のサンプルで試しました。
ttp://volga.eng.toyama-u.ac.jp/~mii/lab/manual/fujitsu/C++/stdlib/stdref/ran_2368.htm
結果は
Elements before random_shuffle:
1 2 3 4 5 6 7 8 9 10
Elements after random_shuffle:
10 1 2 3 4 5 6 7 8 9
>>122
random_shuffle()の第3引数に適当な乱数生成器をつっこむ。
124122:04/02/25 09:35
>>123
それでうまくいきました。どうもありがとう。
しかし…なぜデフォルトでちゃんとシャッフルしてくれないのだろうか…。
(clでは第3引数なくてもちゃんとシャッフルしてくれました。)
125デフォルトの名無しさん:04/02/25 16:19
すいやせん。質問させてください。

cygwinでgccという環境でCの話です。

二重whileで、両方の後続条件をscanf("%d",&in) != EOF
にしました。で、内側のwhileをCtrl+Dで抜けると外側のwhile
も一気に抜けてしまいます。
debianなどのUnix環境でコンパイルした場合は、ちゃんと内側だけ抜けてくれます。
外側まで一気に抜けてしまわないようにするにはどうすればいいっすか?
原因はわからんけど(バッファが残ってるかキーリピートでもしてるんかな?)
本来の意味からすれば EOF(end of file) の判定が
入れ子で(しかも連続して)行われる状況ってのが謎。
EOF をキーボードから送る汎用特殊なコードだと思ってる?
127125:04/02/25 16:54
>>126
レスどうもです。

scanf("%d",&in) != EOFってのは常套手段だと思ってたんですが、
入れ子で使うのってそんなに変ですか_| ̄|○

while(1)にしてif(scanf("%d",&in) == -1) break;
みたいな感じでいってみます。
128125:04/02/25 16:55
うおっと
scanf("%d",&in)
if(in == -1)
break;
ですね_| ̄|○
>>127
EndOfFileが複数あるって変じゃない?
ファイルの終わりが2つあったら、1つ目のEOFは終わりじゃないと思うんだが。
130125:04/02/25 17:02
>>129
確かに。やっぱり機能だけじゃなくて意味も理解して使わないとダメですね・・・

でも、cygwinの環境でだけ一気にwhile抜けちゃうのがやっぱり気になる
FreeBSDで試してみたが、一気に抜けたぞ。ストリームがEOFになったんだから、その後何も
しなければEOFであり続けるのは当然。
scanfなんぞ使うなとK&Rでおっしゃっていますよ。
>>125
clearerr()とかじゃなくて?
>>128
EOFになったらinは変更されないと思うんだが、ゴミが残ってるってことはないのか。
もうちょっとまとまったコード出してみ。
135デフォルトの名無しさん:04/03/03 10:21
solarisのバイナリを吐くクロスコンパイラをビルドしたいんだけど
gccをmakeしているときにエラーが出て止まるってのはどう対処したらいい?
教えてエロイ人

ちなみに参考したページは↓
ttp://www.ei.fukui-nct.ac.jp/~t-saitoh/exp/h8/cygwin-cross/build.html
そのエラーの原因を調べて直す。
>>135
人に聞くときはエラーメッセージくらい書くようにママに教わらなかったか?
138SDL中毒:04/03/04 01:36
Ogg Vorbisプログラム スレで解決しないのでこちらに来ました.よろしくどうぞ.

以下のテストコードをDev-C++ 4.9.8.7上でステップ実行しようとしてもうまくいきません.
本来,ファイルオープンしてからファイルハンドル(FILE*)をov_open()に渡すのですが,それは割愛しています.単にステップ実行できればそれで良いです.

// ライブラリは-lvorbisfileのみ.ここ↓から取ってきてくださいな.
// http://www.vorbis.com/files/1.0.1/windows/OggVorbis-win32sdk-1.0.1.zip#include <stdio.h>
#include <vorbis/vorbisfile.h>
int main(int argc, char *argv[])
{
FILE *file;
OggVorbis_File oggStream;
for(int i=0 ; i<10 ; i++){
printf("i=%d\n", i);
}
ov_open(file, &oggStream, NULL, 0);//この行があるだけでステップ実行できなくなる
return 0;
}

libvorbisfile.aの原因と言うよりは,mingw+gdb固有の原因がありそうなので,mingwの玄人の方,アドバイス頂けると嬉しいです.
gdbをdev-c++からでなく単独で実行した場合はその問題はあるのかないのか。
140SDL中毒:04/03/04 02:55
>>139
おお,さっそくレスサンキューです.
で,gdbをコマンドラインで実行したら

>gdb OggDebug.exe
GNU...(略)
(gdb) run
Starting program: C:\home\work_home\code\test\ogg_debug/OggDebug.exe
../../../BUILD/gdb-5.1.1/gdb/coffread.c:472: gdb-internal-error: sect_index_text
not initialized

と言う具合です.
141SDL中毒:04/03/04 03:20
現行のMinGW 3.1.0-1(GDBは5.2.1)を導入したら直りました.
お騒がせしました.
gdbのGUIのやつ、SJISとおんねえ
ソースのコメントが見られん
なんとかならんのか
SJISを使わない。
$ gcc a
と入力したら、

gcc: a: No such file or directory
gcc: no input files
と表示されたのですが、どうすればいいんですか?
長く言えば何がしたいのかによるが、一言でいうと、線切って首吊って死ね。

>>144
gcc a と入力することで、何が起きることを期待してるの?
>>144
こういう事?

gcc -o a ac
make a
$ make love
make: *** No rule to make target `love'. Stop.

      /\        /\
      /  \      /  \
     /    ゙'----''"´     ヾ
     /                `:、
    /                 `:
    |                   i
    |      ノ '            |
    |      .,___.,     .,___.,   i
     、    ''"´`:、        υ  /
     `丶,:' 、.  . )___Д____,,.,_,,.;''"
      /    /       ο
http://www2.alc.co.jp/ejr/index.php?word_in=make+love&word_in2=%82%A0%82%A2%82%A4%82%A6%82%A8&word_in3=PVawEWi72JXCKoa0Je

Let's Make Love
【映画】 恋をしましょう◆米1960
         ↓
    セックスしようよ
マリリンモンローかよ
 マリリンモンローかよ
Cygwinで、VCをエディタとして使いたいのですが可能ですか?
>>153
て言うか何でそんな七面倒なことを?
>>153
使えない理由が分からないが。何か問題でも?
cygwin mountされたディレクトリは直接見えないが、
どっかに参照先が存在するから問題ないだろう。
156デフォルトの名無しさん:04/03/18 16:22
>>153
使えるんじゃねーの
設定を全部すればな
Dev-C++でも使っとけ
>>153
可能。編集とプロジェクト管理とソース管理にVC使うのは普通にあり。
コード補完も結構効いてくれるし。
外部ツールの登録でプロジェクトファイルと同じディレクトリの
Makefileをmakeするコマンド登録しておくといいよ。
引数も渡せるようにしてmake all/clean/run/debug(insight起動)とかできるようにしておくとなおいい。
というか>>153は何につまづいてるんだ?
159デフォルトの名無しさん:04/03/22 16:12
MinGWで
----------------------------------------------------------------------
#include <windows.h>
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int CmdShow
)
{
MessageBox(NULL, "Win32 API test", "Note", MB_OK | MB_SYSTEMMODAL);
return 0;
}
----------------------------------------------------------------------
をtest.cとして
>gcc test.c
とやってコンパイルしたとき生成したa.exeを実行したときに
表示されるDOS窓を抑制する方法ってある?
160159:04/03/22 16:35
解決しました。
>>160
どうやった?
-mwindows
163デフォルトの名無しさん:04/03/22 18:31
mingwで生成した実行ファイルに与える引数で
ワイルドカード(*.*)を展開して欲しくないんだけど、
抑制する方法はありませんか?
"*.*"みたいに二重引用符で囲めば展開しないみたいだけど。
その展開をしているのは誰なのかを考えてください。
なら仕方ないな。
167デフォルトの名無しさん:04/03/22 23:46
コマンドラインでwindres実行したらWindowsがマウスカーソルごと気絶して
しまうでは、あーーーりませんか!Windows98SEっす。俺の職業もSEっす。
勤め先もSecond Editionっす。
しかし、Dev C++だっけ?使ったらリソースもちゃーんとコンパイルできました。
ユーザインターフェイスが違うだけで、中を走っているツールは同じなんです
よね。
それとも、「コンパイラに1円も払わない窓プログラミング」にWindows98SE
自体が不安定なんでしょうか?コンパイルしても、実行させるのには相変わらず
勇気が要りますね。友達はプログラミング用にWindows2000なんかを使っている
んだけど、贅沢ですなー。
>>167
> それとも、「コンパイラに1円も払わない窓プログラミング」にWindows98SE
> 自体が不安定なんでしょうか?
windres程度で落ちるような98SEを使ってるお前自体が不安定。
>>167
>「コンパイラに1円も払わない窓プログラミング」

だからWindows98SEにこだわる条件も必要も微塵もないと思われ。

170 名前:デフォルトの名無しさん[] 投稿日:04/03/25 20:10
MinGW/windresでリソースを構築しようとするとMENUITEMの行でシンタックスエラーと言われます。
どのようにすれば解決するのでしょうか?
http://www.kumei.ne.jp/c_lang/sdk/sdk_06.htm
ここを参考にしました。

該当部:
BEGIN
MENUITEM TEXT("終了") IDM_END
END

使ったコマンドライン:
windres -O coff sdk06.rc -o sdk06.res
(GNU windres 2.13.90 20030111)

171 名前:デフォルトの名無しさん[sage] 投稿日:04/03/25 20:13
何で括弧付いてんだ?

172 名前:170[sage] 投稿日:04/03/25 20:14
テキストを明示的に括りだしただけで、TEXT()無しでも同じでした。

173 名前:170[sage] 投稿日:04/03/25 20:17
調査不足でした。windresでは
MENUITEM "終了", IDM_END
とする必要があるのですね。コンマ抜けでした。
あと、この場合TEXT()付きでもハネられました。

174 名前:デフォルトの名無しさん[sage] 投稿日:04/03/26 10:23
質問なんだけど、最近の windres は日本語入れてもちゃんと動くの?
昔試したときには激しくダメだったような。
175 名前:デフォルトの名無しさん[sage] 投稿日:04/03/26 12:10
>>174
ShiftJISの通る奴があります。
gccもありますよ。
ttp://mingw.biggie.jp/index.html
cygwinで教えていただきたいことがあります。

cygintl-1.dllとcygintl-2.dllが無いと言われてインストールが失敗するのです。
cygintl-1.dllは何とか見つけたのですが、cygintl-2.dllの方が見つかりません。
どなたか知っている方はいらっしゃいませんか?
173172:04/04/29 12:00
自己解決しました。
お騒がせしました。
cygwin で Xプログラミングしよっかな、と思ってやってみたんですが、

>bash-2.05b$ gcc readbitmap.c -lX11
>/usr/lib/gcc-lib/i686-pc-cygwin/3.3.1/../../../../i686-pc-cygwin/bin/ld: cannot find -lX11
>collect2: ld returned 1 exit status
と、出てしまいます。

.bash_profileで、
LIB="/usr/X11R6/lib:${LIB}"
としてみても、結果は同じです。

/usr/X11R6/lib にはちゃんとlibX11.dll.a があるのですが、どうしてリンクしてくれないのでしょうか?
175デフォルトの名無しさん:04/05/08 15:32
age
176デフォルトの名無しさん:04/05/08 15:50
gcc readbitmap.c -L/usr/X11R6/lib -lX11
ああ、その手があったか・・・。
ありがとうございました・・。
178デフォルトの名無しさん:04/05/08 16:27
>>92
あなたの欲しいもの(make/gcc/as/ld...) がインストールされていません。デフォルトでは gcc などの開発ツールはインストールされません。
make なら make を、gcc なら gcc を、as/ld なら binutils をインストールしてください。gcc を使う場合は、gcc が内部で as や ld を呼び出すので、binutils もインストールする必要があります。
インストールの方法は setup.exe を実行して、インストールしたいものが「skip」になっているはずなので、そこをクリックしてバージョン番号が出るようにしてください。
インストール済みなのに見当たらない場合は、reinstall を選んで再インストールしてみてください。
179デフォルトの名無しさん:04/05/08 21:19
今、cygwinのサイト、落ちてない?
180デフォルトの名無しさん:04/05/09 11:51
>>92
あなたの欲しいもの(make/gcc/as/ld...) がインストールされていません。デフォルトでは gcc などの開発ツールはインストールされません。
make なら make を、gcc なら gcc を、as/ld なら binutils をインストールしてください。gcc を使う場合は、gcc が内部で as や ld を呼び出すので、binutils もインストールする必要があります。
インストールの方法は setup.exe を実行して、インストールしたいものが「skip」になっているはずなので、そこをクリックしてバージョン番号が出るようにしてください。
インストール済みなのに見当たらない場合は、reinstall を選んで再インストールしてみてください。
全部インスコしちまえ。
cygwin全部入れない奴なんていないだろ
>>182
X周りとかプリンタ周りとかpostgresqlとか、必要ない物は入れてないが。
>>179
落ちてるね。setup.exeも使えね。
186デフォルトの名無しさん:04/05/09 23:48
187デフォルトの名無しさん:04/05/10 01:25
cygwinだと
cd //hostname/shared_dir
ってやるとWindowsの他の共有ディレクトリに行って操作が出来るんですが、 MSYS
の環境では出来ないでしょうか?出来るのならどうすれば良いのか教えて下さいましm(__)m
188おでん:04/05/10 02:10
>>187
cd c:\\
ってやると
$pwd
/c
ってなりますが・・・
189デフォルトの名無しさん:04/05/10 18:48
bashのPS1の値ってどんなんでしたっけ?
Linuxのbashでパクりたいので教えて下さい。
>>189
$
>>190
んなこたない
>>189
$ echo $PS1
\n\h:\w\n $
cygwinを使おうとしているけど
何をどうやったらいいのか分からない人に
http://pcweb.mycom.co.jp/special/2002/cygwin/
を送る

漏れ、このサイトでcygwin使えるようになったから
cygwinを全部アンインストールしたい場合はどうしたらいいんですか?
195194:04/05/22 17:00
環境パスを設定する前にcygwinを起動してしまって
環境パスを設定してからcygwinを起動しても
username@が出てこずに
bash-2.05b$と出て困ってます。
それは異常な状態なのか?
>>195
prompt設定してないだけなんじゃないの?
>>194
ディレクトリ全部消せばいんじゃね?
--loginオプションつけてないとか
>>194
sshd等々をサービス起動してたらまずそれを停止/登録解除。
あとはc:\cygwin以下をばっさり消す。
レジストリにゴミが残るのが嫌ならHKLM\Software\Cygnus〜と
HKCU\Software\Cygnus〜を消す。
201195:04/05/22 21:34
アンインストールせずにusername@を出す方法はありますか?
.bash_profileで
export PS1='\[\033]0;\w\007 \033[32m\]\u@\h \[\033[33m\w\033[0m\] $'
とかやっとけば
203193=195=201:04/05/23 14:35
無事にusername@が出るようになりました。
>>200さんの言うようにc:cygwinを削除してから
レジストリも消しました。

新しくインストールしようとすると
MD5 checkでaspel〜ってとこでいつもなぜかフリーズしてました。
そこで、いままでダウンロードしたファイルもすっぱり削除して
最初ダウンロードしていた場所と違うフォルダにダウンロードしました。
これでうまくダウンロードできました。

金曜日の夜から悩んでいたのですっごくうれしいです。
これから「cygwin 使い方」にてぐぐり旅に出てきます。
さよなら〜
C言語なら俺に聞けスレの608さんへ

MSYSはこれ
ttp://prdownloads.sf.net/mingw/MSYS-1.0.10.exe?download
MinGWはこれ
ttp://prdownloads.sf.net/mingw/MinGW-3.1.0-1.exe?download
gmpはこれ
ttp://ftp.gnu.org/gnu/gmp/gmp-4.1.3.tar.gz

ダウンロードしてからインストール
それからは608さんの紹介してくれたサイトで
ディレクトリとかもそっくりそのまま真似したら
gmpを無事に使えました。
dクス

ここからはここのスレの方にレス

だけどMinGWで作ったプログラムをcygwinで起動させようとしたら
bash: primeprime: comend not found
と出ます。
MinGWからは実行させることができます。
最初はコマンドプロンプトからは実行できなかったのですが、
cygwin1.dll cyggmp-3.dllを同じフォルダに入れてからは
コマンドプロンプトからも実行できます。
cygwinからgccでコンパイルしても
MinGWとコマンドプロンプトからは実行できます。
なぜなのでしょうか?
PATH
206デフォルトの名無しさん:04/05/23 21:21
Visual C++用のlibファイルをcygwinのgccで使えるようにしたいと思い
nmコマンドでdefファイルを書き出そうとしているのですがうまくいきません。

例えるとVisual C++用のgdi32.libに対して
$ nm gdi32.lib | grep 'T _'
したときに
00000000 T _TextOutA
のように出てきてしまうのですが、欲しいのは
00000000 T _TextOutA@20
の形式なのです。
$ nm --no-demangle gdi32.lib | grep 'T _'
としてみても結果は変わりませんでした。
引数のバイト数まで含んだ名前を出力する方法はあるのでしょうか?
よろしくお願いします。
207204:04/05/23 22:16
あの、すいません以下の環境変数は通してます。

CYGWIN ntsec
HOME /home/kaz
MAKE_MODE UNIX
SHELL /bin/bash
208デフォルトの名無しさん:04/05/23 23:06
この中でAI作れる人、手挙げて!
ノシ
>207
だから PATH。
primeprime ってコマンドがどこにあるのかしらんが、絶対パスで指定したら実行できるんじゃないか?
その場合は、primeprime のあるディレクトリを PATH に追加しる。

後、cygwin1.dll, cyggmp-3.dll については、そいつらのあるディレクトリに PATH が通ってないと、
DLL のロードに失敗するからだと思われ。
同一ディレクトリにある場合は Windows が検索してくれるけどもな。
>>206
DLL ならともかく、
lib で def ファイル出力させる意味ないとおもわれ。(今は
だから、
直接 cl [filename] gdi32.lib
とかやるってだめなの?
つーか、なぜに、mingw付属じゃだめなの?
212211:04/05/24 04:30
なにかとち狂ってた
mv gdi32.lib libgdi32.a
cc [filename] -L. -lgdi32
でどう?
213206:04/05/24 13:20
>>211
レスありがとうございます。
今はgccでVisual C++のlibファイルが使えるのでしょうか?
試しに DirectX SDKのライブラリを試しに使って

#include <stdio.h>
#include <windows.h>
#include <d3d9.h>

int main(){
 IDirect3D9* pD3D = Direct3DCreate9(D3D_SDK_VERSION);
 if (pD3D != NULL){printf("OK\n");}
 else{printf("NG\n");}
 return 0;
}

のようなソースで

$ cp /cygdrive/c/DXSDK/Lib/d3d9.lib /cygdrive/c/DXSDK/Lib/libd3d9.a
$ g++ dtest.cpp -I/cygdrive/c/DXSDK/Include -L/cygdrive/c/DXSDK/Lib -ld3d9

としてみたのですが、
undefined reference to `_Direct3DCreate9@4'
となってしまいます。
何かVC用のライブラリを使うオプション等があるのでしょうか?
214211:04/05/24 16:19
directx 使ったことないので、わからんのです。ごめんなさい。
自分の場合、赤本1版の alu だったけか、そんなライブラリのとき
エクスポートして散々いろいろやったあげく、できなかったので、
勘はたらかせて直接やったときの経験思い出して書き込みました。cdecl と stdcallの関係をうまいこと処理して
くれるとおもって問題ないと推測したんですが、
directx だとできなさそうですね…
で調べてみたら、devc++ 用(mingw)にパッケージ入ってるらしいので、
それだけ抜き出したものが、以下にあるっぽいです。
http://gproductions.dazart.de/modules.php?name=Downloads&d_op=viewdownloaddetails&lid=6&ttitle=DirectX9.DevPak
ためしてないので、なんともいえないのですが、gevdev とかみてると
いけるっぽいです。
そういや、最近の ld って、.dll を直接指定できるよね。
216211:04/05/24 16:53
ひまだったんで、上のソースコンパイルしました。
やり方は、DirectX9.pak とかってのを download して
tar xjvf *.pak
とかやって解凍したあと
その中の DirectX9/Common/Src
にいって、
コピーしたやつを、
cat `getclip` > yours.cc
c++ yours.cc -I../Include -I../../include -L../../lib -mno-cygwin -mwindows -ld3d9 ...
とかやればコンパイルは通って、
OKとか出てきました。
よくわからんけど。私は多分つかわんので深追いしません
あとはがんばってください
あの、
primeprimeってのはコンパイルしたファイル名なんですが、
gccでは実行ファイルのあるディレクトリにいても
そのファイルの名前.exeでは起動させれないんですか?
>>217
出来ません。

gccは何も指定しないと、a.exeを作成する。
カレントディレクトリのファイルを実行するには./a.exe
219211:04/05/24 18:04
ちょっとみすってた。
>>216 > ruby -pe ' $_.gsub(/cat (`getclip`)/) {|s| $1 }
とかで読んでください。

>>217
PATH っておっしゃってくださっているので、
cygwin 上で
echo $PATH

locate primeprime (or primeprime.exe)
の出力結果
もしくは、
updatedb回してないのなら
find / -name primeprime (or primeprime.exe)
とかの情報見せてください。
もし、/ からみえないディレクトりでしたら、
/cygwin/c/path/to とかを find / <= のところでおきかえてください。
じゃないと、答えられんとおもいます。
echo $pathは

/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:
/cygdrive/d/windows/system32:
/cygdrive/d/windows:cygdrive/d/windows:
/cygdrive/d/windows/system32/wbem:
/cygdrive/d/borland/bcc55/bin:
/cygdrive/d/ruby/bin:
/cygdrive/c/mingw/bin:
/cygdrive/d/home/work/c_prog

でした。
/cygdrive/d/home/work/c_progは
primeprimeのおいてあるディレクトリです。
ファイル名は-oでちゃんとprimeprimeにしてあります。

locate primeprimeとfind / -name primeprimeは
何も表示されずに
$
になりました

find / /cygwin/d/home/work/c_prog/primeprime.exe

find: /cygwin/d/home/work/c_prog/primeprime.exe: No such file or directory
と出ました。
find /cygdrive/ -name 'primeprime*'
でためしてみたら?
>>221
試してみたのですが、
find: /cygdrive/c/System Volume Information: Permission denied
と言われます
223206:04/05/24 22:18
>>214
ありがとうございます!
教えていただいたパッケージ内の DirectX9/Lib の中の lib*.a が cygwin の GCC でそのまま使えるみたいです!
本当は後学の為に DirectX9/Lib/Definitions の中身と同じ物を作る方法が知りたかったのですが、
今回は教えていただいたパッケージ内のlibで用が足りてしまいました。

細かい説明、本当に助かりました!ありがとうございました!!
>>215
stdcall だと suffix の関係でできなかったような気が
225211:04/05/24 23:56
sage 進行でいいですねここ。
>>224
私もよくわからないので後学のためにおききしたいのですが、
以下のことを教えていただけないのでしょうか?(ちょいあげます
http://www.spacejack.org/games/mingw/
ここの中の
http://www.spacejack.org/games/mingw/mingw-dx.html
をよむと、mingw or cygwin 上で、直接 directx6 の.lib を指定
(もしくは、上でやったように、libhoge.a とかに変更してやっている
のですが)
例 gcc hoge.c dxguid.lib
これは、現状の”性的”ライブラリではできない?つまり内部の
formatがかわったということでよろしいのでしょうか?昔は、たしかに
できた覚えがあるのですが、ちんぷんかんぷんなので識者の方
よろしくおねがいします。

また、確かに
http://mywebpage.netscape.com/yongweiwu/stdcall.htm
をよむと、できなさそうだということもわかりました。

>>223
これは、上に挙げたホームページにかいてありますのでことこまかに。
一例あげると、DLLがあるということを前提にします。
んで、そこから”性的”ライブラリを作るためには
VC用は、impdef.exe とかってどっかからひろってきて
impdef hoge.def hoge.dll
lib /machinei386 /def:hoge.def
とかやれば、作れます。
226211:04/05/24 23:57
んで次 gcc
上のところから、pexports hoge.dll | sed "s/^_//">test.def
dlltool -U -d test.def -l test.a
とかやれば作れます。
gccのほうは、上のやつとまったく同じことを書き写しました。(意味ねぇな
でも、両方とも、STLport とか、boost とかで試したので、多分できると
おもいます。
>>225
性的は恥ずかしいのでやめなされ
impdef.exe。。。インポでふ○EXイィ!
m9(`・д・´)ソレダッ!!
229211:04/05/25 20:56
己の自戒のためと、質問した責任と知識の消化のために、自己レスします。
あまりの無知さにあぜん。
当然、無知なので間違ってる可能性大です。つっこみよろしくお願いします。

ということで
>>228 ありがとん。この”インポ”でひらめきました。
cygwin や、 mingw というか、(dll
では、どうやら以下のようなライブラリの形式
があるようです。(hoge)はあってもなくてもいいということです。
1 (lib)hoge.dll.a -- これは”インポ”ライブラリ(過去はこれだけ
or 今はシンボリックリンク to a DLL の可能性も
2 libhoge.a -- これは、”インポ”ライブラリ or "性的”ライブラリ!!!
3 (lib)hoge.dll -- これは、”慟的”ライブラリ
4 (lib)hoge.la -- これなに???
ということです。
230211:04/05/25 20:57
この中で、実際コードは眺めてないのですが、(たぶん ld に書いてあると
推測されます。)どうやら、libhoge.a の”性的”ライブラリに対しては
vc 用の、性的ライブラリと互換性があるということなのかと推測されます。
ひまだったら確かめます、んで、
>>215
がおっしゃってることなのですが、
確かに、info 見るとできるようです。なにやら、簡単にいってしまうと、
”おーばーへっどなしで、メモリすくなめこれおとく”。ッて感じで書いてありま
した。
やり方は、2つあるそうですが、
1 gcc -Wl,-verbose -o a.exe -L../bin/ -lxxx
2 link はって、それにたいして上とおなじようなことする
で、なんで上記のメリットがあるのに、いちいち”いんぽ”ライブラリ
つかってんの?っていうのは、info に問題点かいてあんで、みてください。
最近までつかえなかったというのは、215のおっしゃっているとおりだと、
その理由のひとつにかいてありました。

ついでに、pexports hoge.dll とか、 impdef とか、
やってましたが、ld、や dlltool dllwrap とかに、うまいことオプション
つけるて、ちょい加工すればいけました。
以上です。
>性的ライブラリ
おまえがどういう板にいるのかだいたいわかった
同士よ!
232206:04/05/25 22:58
>>230
いろいろ情報ありがd。
私も自身の備忘録の為に。

ウチで試した感じだと pexports して得られる def は nm の結果に grep かけたのと同じ、
@4とか後ろについてない名前だけみたいです。
代わりに Borland C++ 付属のimpdefがそれっぽい形式の名前を吐いてくれてるみたい。
微妙にカラム位置等が違うけど、そのままでダメだったらperlかなにかでフォーマット整えればいいかもしれない。
VC用DLL -> Borland の impdef -> defファイル
で、
defファイル -> dlltool -> lib*.a
でいけるかな?
ちょっと今日は試す時間がなかったので途中経過報告でした。
>>229
>4 (lib)hoge.la -- これなに???
.loはライブラリオブジェクトだから
.laはライブラリアーカイブかな。
http://www.linux.or.jp/JM/html/gnumaniak/man1/libtool.1.html
libtool archiveかも試練。
> libtool: link: `../lib/libexample.la' is not a valid libtool archive
手元にVC++しかないのでinfoが未練ので勘弁。
235211:04/05/26 16:22
>>232
pexports -o [filename]
でどでしょう? Mingw のdocumnet に
One option is the tool, pexports which is provided in the MinGW Utilities package, mingw-utils. See the Downloads page for the Current version. If your dll has functions that use the Pascal calling convention, you'll need to use the -o option.
とかいてあるので、ためしに、d3dx8d.dll とかにかけたらいけたっぽいです。
>>233 >>234
ありがとん。その suffix なんなんでしょうね? namazu 君でもひっかかって
くんなくて、ちんぷんかんぷんです。
でも、コードながめておもったけど、COFF とか、PE とか
知らない構造が、でてきてこまってました。断片的によむならいけそうでしたが、a.outとか…ELFとかじゃないんですね。
ちょっとまとまった文読まなきゃならないような気がしてきたので、
りんかーあんどろーだの原文のりふぁー載せときます。
上級者解説PLZ
http://www.iecc.com/linker/
236211:04/05/26 16:45
追記 なにやら、またとちくるってました、今探したら街頭個所ありました。
libtool 読んでて以下のようにかいてあったので、
the libtool library name differs from the standard name (it
has a `.la' suffix instead of a `.a' suffix).
本来なら hoge.lla とかじゃないかと、おもいました。
ついでに、 .loは、おっしゃるとおり
The `.lo'file is a library object, which may be built into a
shared library, andthe `.o' file is a standard object file.
でした。
libtool info 長いですね、非常に。だれがこんなに書くんだろ?
海の向こうのひと、特にgcc 関連すごすぎなのです。
237デフォルトの名無しさん:04/05/28 09:13
/dev/???でOutputDebugStringに書き込めるようなのってありませんか?
238211:04/05/28 19:52
>>236
なんで標準出力あるのに、OutputDebugString 使うんでしょうか?
って、きいてみていいですか?
理由が、特にないのなら、
/dev/tty0 とか、ファイルとかにかきこんで
screen とか使ってんなら
const char const* output_device = "/dev/tty*"
とかで、きめ内でやるってどうです?
_WIN32 とかで切り替えれば、outputdebug...でも、f...でもすきなとおりで
outputdebug... を使う場合は、
http://sysinternals.com のDebugViewで、ログ吐き出しで
tail -f [filename]とか…でどでしょう?
というか、自分のすれじゃないのでそろそろだまります。
すれ汚しててごめんなさい。
>>237
/dev/???でやりたいなら、/dev/???に書くと内部でOutputDebugString
する仮想デバイスをcygwin1.dllに実装するしかないじゃん。
/dev/clipboardとか/dev/windowsのやり方と同じ。
デバイスファイルにアクセスできるんなら素直に普通のファイルに出力した方がいいのでわ
241デフォルトの名無しさん:04/05/30 15:48
>>240
利点がわかってない奴は黙ってろ。
どなたかお願いします。
gmpライブラリを用いて
3+4を出力するプログラムを作ってもらえませんか?
3と4はgmp数でおねがいします。
gmpライブラリを使おうとかれこれ
2週間たちました。
いろいろなとこを巡ってみました。
でも、だめでした
どうかどうかおしえてください。お願いします。
244242=243:04/05/30 19:08
えっと
他のスレに行ってきます。
失礼しました。
>>241
利点とは?
黙ってろ。
>236
ちょい不安なんで確認しますけど、とりあえずインポートライブラリ != 通常の静的ライブラリっていうのは
理解されたってことでいんですよね?
あくまで動的リンク時に用いるものだということで。

>the libtool library name differs from the standard name (it
>has a `.la' suffix instead of a `.a' suffix).
>本来なら hoge.lla とかじゃないかと、おもいました。
「libtool library の名前は通常のものと異なっている。
 .a サフィクスの代わりに .la サフィクスを持つ。」
なんだから、通常のライブラリが hoga.a なら hoge.la であってるはずですが。
なお、.la ファイル自体は通常単なるテキストファイルで静的ライブラリとか
動的ライブラリのパス、依存ライブラリが書いてあります。
Libtool 使うと動的ライブラリ(DLL含む)に関する七面倒くさいこと(環境依存部分、
cygwin なら dlltool とかインポートライブラリ周りとか)を面倒見てくれるし、
依存ライブラリの解決もしてくれるんでマジお勧め。
やるなら Autoconf/Automake との併用がよろしいでしょう。
ttp://sources.redhat.com/autobook/
ttp://www.amazon.co.jp/exec/obidos/ASIN/4274064115/
gmpライブラリ使ってるんですが、
コンパイルする時に
gcc gmp.c -I/usr/local/include -L/usr/local/lib -lgmp -o gmpIL
gcc gmp.c -lgmp -o gmp
とするのでは実行ファイルができた時に
gmpIL(130KB)とgmp(14KB)のファイルサイズが9倍くらい違うのですが、
なぜなんでしょうか?
ダイナミックリンクとスタティックリンクの違いじゃないの?
>>248
ライブラリがstripされているかどうかの違いかも。
リンクされているライブラリ調べたら?
objdump -p gmpIL.exe | grep 'DLL Name:'
objdump -p gmp.exe | grep 'DLL Name:'

gcc -s gmp.c -I/usr/local/include -L/usr/local/lib -lgmp -o gmpIL
gcc -s gmp.c -lgmp -o gmp
setup.exe でcygwinのバージョンを一番新しいのにすると
gccがコンパイル時にコア吐くのオレだけ?
253248:04/06/08 19:08
ダイナミック・スタティックリンク・stripについて
いろいろとググって見たのですがまったく理解できませんでした。

現在は -lgmp だけでコンパイルしておりますが、
まったく問題がないのでこっちで行きたいと思います。
失礼いたしました。
>>253
strip gmpIL
で小さくなんない?
>>253
あと,ダイナミックリンクでリンクされるファイルはlddで調べれる.
ldd gmpIL
ldd gmp
の差を見てみるといいです.
256253:04/06/10 13:03
まだよくわかりませんが
いろいろと具具って勉強してみたいと思います
この質問は終わりでOKです
みなさん親切にありがとうございました
/*リソーススクリプト*/
KITTY DIALOG 10 , 10 , 100 , 50
FONT 16 , "MS Shell Dlg"
STYLE WS_CAPTION | WS_BORDER | WS_SYSMENU
CAPTION "Magical nyan nyan TARUTO" {}

これwindresでコンパイルできないんですが、無理なんでしょうか?
STYLEの行がparse errorってなります。
>>258
ありがとうございました。
cygwinではconio.hは使えないんですか?
inline関数を利用していたCプログラム(-std=c99)を

c++(.cppに変更して)でコンパイルしたのですが、
inline関数の undefined reference が発生してしまいます。

原因等ご存知でしたらご教授願います。
>>261
短いサンプルでも書いてもらえば何か分かるかも.
263261:04/06/19 16:54
自己解決しました。

>>262さん、レスしていただいたのに申し訳ないです。

.hpp(.h)
void a();

.cpp(.c)
inline void a()
{
}

上記を変更して

.hpp
inline void a()
{
}

.cpp
削除

として、解決しました。お騒がせしました。
>>263
見つけてしまったので一言。
.hpp と .cpp に分けたければ

// hoge.hpp
void a();
#include "hoge.cpp"
// end of `hoge.hpp'


// hoge.cpp
inline void a()
{
  // ...
}
// end of `hoge.cpp'

でいいね。
cygwin+clでコンパイルできないかな?
includeパスを見つけられないみたいでコンパイルできないぽ。
266265:04/06/19 23:34
ありゃ勘違い。コンパイルできるじゃん
>>260
/usr/include/mingw/conio.hはあるから、gcc -mno-cygwinすれば使える
んでは?ただ、そのかわり「VC++やMingWでコンパイルしたWin32アプリ」
と同じになるので、Cygwin固有のUnixっぽい機能は一切使えなくなるけど。
268260:04/06/24 19:44
>>267
どうもありがとうございます!使えました。
269デフォルトの名無しさん:04/06/29 15:54
Linux板で聞いたら板違いと言われてここに来ましたorz

Cygwinで GHMMというライブラリをインストールして、それを使ったプログラムを書くのですが、
下記のtest.cppのソースのように GHMM_Seq〜 の行を付け加えた時点で下記のコンパイルエラーが出るようになるのです。
これ、どういう意味なんでしょうか??
なんかCygwinの外のWindowsのパスがでてるんですが・・・

------ test.cpp --------
#include <ghmm++/GHMM.h>

using namespace std;

int main()
{
vector<double> v;
v.push_back(0.5); v.push_back(0.35); v.push_back(0.75);

// init GHMM_Sequence data structure
GHMM_Sequence seq1(GHMM_DOUBLE, v.size(), 1);

return 0;
}

------ コンパイル ----------
$ g++ -Wno-deprecated test.cpp
/cygdrive/c/DOCUME~1/shige/LOCALS~1/Temp/ccEAX46u.o(.text+0x16d):test.cpp: undef
ined reference to `std::GHMM_Sequence::GHMM_Sequence[in-charge](GHMM_SequenceTyp
e, int, int)'
/cygdrive/c/DOCUME~1/shige/LOCALS~1/Temp/ccEAX46u.o(.text+0x17b):test.cpp: undef
ined reference to `std::GHMM_Sequence::~GHMM_Sequence [in-charge]()'
collect2: ld returned 1 exit status
その GHMM とやらのライブラリをコマンドラインで指定しなされ。
271デフォルトの名無しさん:04/06/29 16:52
>>270
オプションで指定してもでるんですよ。
それに -Wno-deprecated をはずすと下のようにでるから、ライブラリの読込みは出来ているようで。
ちなみにcygwinでなくLinuxでやっても、同じようなエラーがでました。

$ g++ test.cpp
In file included from /usr/include/c++/3.3.1/backward/strstream:51,
from /usr/local/include/xmlio/XMLIO_ArrayElement.h:10,
from /usr/local/include/ghmm++/GHMM_Sequence.h:13,
from /usr/local/include/ghmm++/GHMM.h:11,
from test.cpp:2:
/usr/include/c++/3.3.1/backward/backward_warning.h:32:2: warning: #warning This
file includes at least one deprecated or antiquated header. Please consider usin
g one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples
include substituting the <X> header for the <X.h> header for C++ includes, or <s
stream> instead of the deprecated header <strstream.h>. To disable this warning
use -Wno-deprecated.
------ 以下、例のエラーメッセージ(略 ----------
>>269
ぱっと見こんなかんじかな。

>using namespace std;
これ消して
#include <vector>
を追加。

>vecotr<double> v;

std::vector<double> v;
にする。
273デフォルトの名無しさん:04/06/29 17:29
>>272
ありがとうございます、やってみました。
using namespace std; を消すと GHMM_Sequence undeclared と出たので、
ライブラリのヘッダファイルを見たら、クラスらは namespace std { } で囲われて宣言されてました。
なので using namespace std; はどうやら必要なようです。

GHMMユーザーが少ないのが痛いですねー。
Google日本語11件て(;・∀・)  英語で探してもいいページないし
う〜〜〜ん・・・
>>271
なんでそのメッセージが「ライブラリ」の読み込みができていることに
なるんですかッ。
それからは「ヘッダ」が読まれていることしか確認できないでしょう?
275272:04/06/29 17:40
>>273
GHMM_Sequenceクラスってのはstd内にあるんだ。
それなら >>272は完全無視して。

たとえば、そのクラスが定義されてるライブラリの名前が
libghmm.a(仮名)
だとすると、コンパイル(つーかリンク)するときオプションに
-L'libghmm.a があるパス' -lghmm
ってつけてみ。
276デフォルトの名無しさん:04/06/29 18:14
>>274
はっ!たしかにΣ(゚д゚lll) そうですよねorz 浅はかでした

>>275
/usr/local/lib/ にちゃんと libghmm.a などのファイルがあるのを確認してから
やってみたのですが結果は下記のように・・・
ちなみに -L だけつけても下記と同じ。
-l だけつけると↓だぞうです。
/usr/lib/gcc-lib/i686-pc-cygwin/3.3.1/../../../../i686-pc-cygwin/bin/ld: cannot
find -lghmm
collect2: ld returned 1 exit status

ライブラリそのものをインストールしなおした方がいいんですかね(鬱

-----------------------
$ g++ test.cpp -L/usr/local/lib -lghmm -Wno-deprecated
/cygdrive/c/DOCUME~1/shige/LOCALS~1/Temp/ccHzwNQu.o(.text+0x16d):test.cpp: undef
ined reference to `std::GHMM_Sequence::GHMM_Sequence[in-charge](GHMM_SequenceTyp
e, int, int)'
/cygdrive/c/DOCUME~1/shige/LOCALS~1/Temp/ccHzwNQu.o(.text+0x17b):test.cpp: undef
ined reference to `std::GHMM_Sequence::~GHMM_Sequence [in-charge]()'
collect2: ld returned 1 exit status
うちはビルドできました.
環境はLinux on Debian,gsl(1.4),gcc(3.3.4)です.
$ cat test.cpp
#define HAVE_NAMESPACES
#include <ghmm++/GHMM.h>
#include <vector>
using namespace std;
int main() {
vector<double> v;
v.push_back(0.5); v.push_back(0.35); v.push_back(0.75);
// init GHMM_Sequence data structure
GHMM_Sequence seq1(GHMM_DOUBLE, v.size(), 1);
return 0;
}
$ g++ test.cpp -lghmm++ -lghmm -lxmlio -lgxl -lgsl -lgslcblas
ghmmはそのままでビルドできなかったので,ほんの少し手直ししました.
xmlioも古いバージョンのコンパイラで書かれてるみたいで,警告がわんさか出ますね.
278277:04/06/29 21:25
ghmmは0.6.0でxmlioはsnapshotsの一番新しいやつ
xmlio-1.0.0-20030210.tar.gz
を使いました.
279276:04/06/29 23:53
>>277
ghmmインストール時に手直しですか。
インストールしなおそうとおもっているので教えていただけませんか?
280277:04/06/30 09:43
>>279
269のtest.cppは277で示したように,ソース冒頭に
#define HAVE_NAMESPACES
を付けるとコンパイルできると思いますよ.
ghmmのビルドで,私が手直ししたのは以下です.
gccのバージョンによっては必要ないのでしょう.
####################### base64 #######################
H4sICN0K4kAAA2ZpeC5kaWZmAK1TXWvbMBR9jn7FoYWR2JY/1LV2XFoChT6MtitlZQ9jGC+W
Y221VGR7DEb/+yQ78UogbcciP0jW1bnn6uqcQpQlaHejsarqmob+iR/6Sq8C+xs0Ra0K/uAv
n0W3IoRS+jJ2cq0krnMNRGBH6fE8DROwMHxPXNfdnXjyqeP40EmwuTmdRlF6HA+wxQI0nide
DNdOCRYLgicEDnpodiuyRy1kCycgMB/9qUSxjrUqWzNMl0o27bANp1Yeho11GE5j92yaHw95
08zwm7iGYk+5bG3uG3O9UBEOC14KyXFxf5fd3n28wMF2vgMC9CDhffdqDzJfVqVn7qFXp6Y5
tpkJi7wTuAljpqe2mXYYMnrefBFffSGzps1b3uBsAwOeyOaM6bXSJjSuT4l72ElT2FgVscc3
ZPG8J0uikazOSs35tGb0vFWPKlO64HrW0wy36cPvajbsad52Wk5v7q+uZju5Audsj8O8VvEm
p1Q7BV296pRqcqkFLvk3I3OERvIsZfHrTqm2nRKmR8lfp0SxbbRrp2TTb4tz+kcuRrk8F9+o
uFFwy15xVjAGFTiO1S/F4IZ+/K8lzEMGAfac8d/S7U60ufXgDHzWwrohX4OFRJ23WvxCqbRZ
+eQPluMIQlYFAAA=
####################### base64 #######################
281277:04/06/30 09:57
>>280
これだけじゃ,decodeできないようですね.
base64で上げたの初めてなのでお許しを.
####で囲まれた領域を(境界を除く)をASCIIファイルとして,
fix.diff.gz.base64という名で保存して下さい.
その後,
$ base64-decode < fix.diff.gz.base64 > fix.diff.gz
$ gunzip fix.diff.gz
です.
282276:04/07/01 01:47
>>277
ありがとうございます。
↑の「手直し」により、GHMMライブラリ自体の再インストールも問題なくうまくいきました。
にもかかわらず結局下記のエラーメッセージに帰ってきてしまいました(´Д⊂

$LD_LIBRARY_PATHや$LIBRARY_PATHにGHMMの.aファイルがあるパスを登録してからやってみると、
「undefined reference to 関数名」みたいなのが大量に出るようになるし。

どうもリンクについてよくわかってないようです。この際にちゃんと勉強してみます。

----------------------------
$ g++ test.cpp -lghmm++ -lghmm -lxmlio -lgxl -lgsl -lgslcblas -Wno-deprecated
/usr/lib/gcc-lib/i686-pc-cygwin/3.3.1/../../../../i686-pc-cygwin/bin/ld: cannot
find -lghmm++
collect2: ld returned 1 exit status
283277:04/07/01 02:06
>>282
たぶん,最後の「cannot find -lghmm++」の状態より,
> 「undefined reference to 関数名」みたいなのが大量に出るようになるし。
こっちの方が前進しています.
そのエラーに出ている関数が格納されているライブラリを正しくリンクさせればOKです.
284277:04/07/01 02:29
>>282
$ g++ test.cpp -L (libghmm++.aのパス) -lghmm++ -lxmlio -lghmm -lgsl -lgslcblas
で何とエラーが出ますか?
285285:04/07/12 21:50
rm -f calculation.o
gcc -g-c ship.h -lm
gcc:Compilation of header
file requested
make:***[calculation]
Error1

と出力されます.
今日初めてwindows環境でUNIXを使うのですが、これの解決策を教えて下さいませんか.
お願い致します.
デスクトップ上の問題なのでしょうか?
ヘッダをコンパイルしない。
>>285
>デスクトップ上の問題なのでしょうか?
そんな気がする・・・
288デフォルトの名無しさん:04/07/12 22:07
例えばどんな可能性がありますか?
コマンドラインに何か付け加えるとかでしょうか?
289287:04/07/12 22:19
スルーですかそーですか
290289:04/07/12 22:19
失礼
オレは>>286
291デフォルトの名無しさん:04/07/12 22:24
ヘッダって何ですか?
救いようが無いですね
293286:04/07/12 22:30
>gcc -g-c ship.h -lm
>gcc:Compilation of header
>file requested

ship.hっていうヘッダファイルをコンパイルしようとしてるから
「ヘッダのコンパイル」
「ファイルよこせ」
ってエラーが出てるんだろ。
C(またはC++)のファイル(拡張子が.c c++ cc cxx C cppのどれか)をコンパイル汁。

gccでは3.4.0より古いバージョンでは
ヘッダファイルのコンパイルはできん。
>>291
.cや.cppなどのファイルから共有目的でincludeされるファイル.
Cでは関数のプロトタイプ.C++では更にクラス定義などが書かれる.
拡張子は.hであることが多い.
コンパイルって何ですか?
>>295
285でしようとしていること.
>>296
>>285がしようとしてることが
おまいさんの想像通りとは限らんぞ。
特に>>285==>>291だったりしたら。
299285:04/07/12 23:00
>>293
拡張子を.cに直して改めてコンパイルしてみましたところ、

make:*** No rule to make target `ship.h',needed by `main.o'. Stop.

と出力されました.
これは一体・・・?
もはや行き止まりな気もするのですが・・・;
とりあえずMakefileみせろ
>>299
面白すぎる
>>299
λ... ナンダ、ネタカヨ
303286:04/07/12 23:19
オレは釣られたのか...orz
304285:04/07/12 23:20
#
# makefile ship
# by kouichirou zusi
#
#------------------------------------------------------------------
SRCSc = main.c subfunctions.c calculation.c economy.c

SRCSf = sqp.f

#--------------------------------------------------------

OBJSc = ${SRCSc:.c=.o}
OBJSf = ${SRCSf:.f=.o}


#--------------------------------------------------------
CLIB = -lm
F77LIB = -L/opt/SUNWspro/lib -lV77 -lF77 -lm
#F77LIB = -L/opt/Fortran1.2/lib -lF77 -lI77 -lU77 -lc -lm
#F77LIB = -lF77 -lI77 -lU77 -lc -lm
#--------------------------------------------------------

なぜ名前まで晒す
306285:04/07/12 23:23
FLOAT_OPTION = -g
#
#--------------------------------------------------------
#FFRAGS = -04
FFLAGS = -xO4
#FFLAGS = -x05
#FFLAGS= -autopar
FFLAGS= ${FLOAT_OPTION}
#--------------------------------------------------------

exe : ${OBJSc} ${OBJSf} ship.h
f77 ${OBJSc} ${OBJSf} -o $@ ${FFLAGS} ${F77LIB}

${OBJSc}:ship.h
rm -f $@
gcc ${FFLAGS} -c $< ${CLIB}

307285:04/07/12 23:25
#${OBJSf}:
#rm -f $@
#%.o%.f
#f77 ${FFLAGS} -c $< ${F77LIB}

#------------------------------------------------
clean:
rm -f *~ *.o *# ${BINS}

3つに分けました.
助言お願い致します.
まず逗子浩一郎をしばけ。
そして
${OBJSc}:ship.h

.c.o:
に置き換えろ。
あと>>299でship.cにしちゃったのはship.hにもどせ。
310285:04/07/12 23:40
>>309
分かりました.有難うございます.
なんでそんなに優しくなれるんだ
宿題丸投げで、しかもマルチポストなのに
312285:04/07/12 23:59
>>309
コンパイルした結果、
$make
Makefile:36: *** target pattern contains no `%'. Stop.

と出ました.
親切な人は逃げた模様
314親切な人:04/07/13 01:12
マルチだったのか。じゃ放置。
315デフォルトの名無しさん:04/07/13 21:11
親切な人さんへ> 助言お願いします
>>315
そのエラー内容でぐぐってみろ
以下のソースをgccでコンパイルしようとすると
c:4 syntax error: "("unexpected
と出てコンパイルできません
VC6.0ではコンパイルできました
なぜなんでしょうか?

#include<stdio.h>
#include<ctype.h>
int main(void)
{
int ch;
char sw;
sw=0;
while((ch = getchar()) != EOF){
if(sw==0){
ch=toupper(ch);
}else{
ch=tolower(ch);
}
sw=sw^1;
putchar(ch);
}
return 0;
}

>>317
gcc(3.3.4)だとできますよ.
環境は?
319デフォルトの名無しさん:04/07/15 11:21
Windows環境でFFMPEGを正常にビルドできない…
EXEは作成されても有効にならないオプションがたくさんあります
CVSが毎日のように更新されてるからソースコードの原因とは思えないんですけど
何で上手くビルドできないんだろう…
>>318さん
すいません、なんか今やったらうまくコンパイルできました。
しつれいしました
FFMPEGビルドできた人いないですか?
それ以前にそんなものには興味なしなのかな
>>321
何か問題でも?
>>322
Mpeg2エンコードで後ろ4フレームぐらい削られるのと
-me full オプションが効いてない上にIBBPと続くはずのフレームがIBBIの連続になったり。
ビルド時にいたるところでwarningが出てるのでそれが関係してるとは思うのですが
MSYS,MINGW、bitwalkやら日本語プロジェクトを試してもお手上げでした
324デフォルトの名無しさん:04/07/18 13:54
gcc/linux で使える、メモリ管理上のバグを検出するツール
を探しています。今組んでいるプログラムで、何も効果がな
いはずのコード(同じ初期化処理を何度も繰り返すコード等)
を挿入すると、結果が変わるというバグが取れなくて困って
います。一応ネット上で調べて、memwatchというのを使って
チェックしてみたところ、メモリリークは検出できて、debugし
たのですが、最初の問題は解決しません。memwatchの開
発者も、全ての問題が検出出来るわけでは無いと書いてい
ます。どなたか、この種の問題をdebugするのに良いツール
をご存知でしたら、お教えください。
(ちなみに、最適化オプションによって現象が出たり出なかっ
たりします。debugモードでコンパイルすると出なくなるので、
gdbでトレースすることもできそうにありません。)

マルチ乙
多分、普通にバグっててメモリ壊してんだろうな。
壊しちゃいけないところを壊してるならツールで検出できるが
そういう単純なバグはツールでは検出できんよ。
gcc/linux といっているのに何故ここに誘導するのか意味が分からない
gccのデバッガだとおもたから
330デフォルトの名無しさん:04/07/18 23:45
Subject: [Mingw-users] ANNOUNCEMENT: GCC-3.4.1 release candidate
Date: Sat, 17 Jul 2004 00:40:38 +1200

GCC-3.4.2 が出る前に stable になるんかね。
331デフォルトの名無しさん:04/07/19 01:26
おい、使ってる、リソースエディタ教えろ!
emacs
333デフォルトの名無しさん:04/07/19 18:23
>>332
Weditでできたよ。
というか、理屈がわかったよ。
テキストエディタでも、よさそうだな。あんがと
おい、DirectXの使い方教えろ!
>>334
SDKとbcc用のd3dxなんかのdllを落としてきて、
後は普通にビルドするだけ。
BCCってなんだ。ここはGCCスレだったはずだが・・・
俺の脳みそじゃ、DirectX利用できる環境構築は、無理らしい。GDIで我慢するよ。糞氏ね
>>338
じゃ、このスレ終了ってことで
直接DirectX扱いたいならVCToolkitのほうがいいんじゃないの?
>>339
いや、ググったらいくらでも構築例がでてるのに無理らしいって根拠レスなレスのソースが知りたいのよ
GCCで構築するのにBCC用に変換したライブラリが必要って一つ前のレスも読んでないだけなのか?
理解できないのか?どの程度説明欲しいのよ

>>340
GCC好きな変態が集まるスレってことで


OpenGLと比べてDirect3Dが有利とは思わないけどそれ以外は便利
DirectXを使うために言語を選択するならVCってのは当然といっちゃ当然
OpenGLは遅いという偏見があるんだが、OpenGL2.0で見方が変わるのかも。
つーか大抵のベンチでOpenGL実装とDirectX実装のスコアを見るとOpenGL
実装のほうがかなり負けるのは手抜き実装してるためなのかね?
> 大抵のベンチでOpenGL実装とDirectX実装のスコアを見ると

たとえばどのベンチマーク?教えてplz
印象に残ってるのでは、ポストペット(バージョン忘れた)。ダブルスコアぐらい軽く差がついてた。
ひょっとするとオンボードグラボで、OpenGLがソフトウェア計算されてたのかもしれない。
DirectXの方が機能が先だからか、DirectXでOpenGLの実装してるベンダは多いみたいですよ兄貴。
かつてはOpenGLの方がハードウエア扱う上でのレイヤの層が薄い分速度面でも有利なんて
SGIのサイトに載ってたくらいなんだけどね。
http://www.mbd.co.jp/cgin/h_g_elsa.html
こういうバカ高いのはレンダリングWS用なんかね。まあスレ違いだけど。
こういうカードでベンチやるとOGLvsDXがどうなるのか興味ある。
Xabreなんかの手抜きカードはOpenGL実装を随分さぼってるよね
NVIDIAもATIも、OpenGLとDirectXは共通ドライバだかなんだかで、
機能の違いをうまく吸収するようにしてるらしいが、実際に試してみたら
結構露骨な差が出たりするのかな。

DirectXは基本的にハードウエア環境の違いを吸収するためのもの、
OpenGLはグラフィックプログラミングの環境自体を抽象化するためのもので
基本の性質がぜんぜん違うものだし、単に数字だけみればOpenGL不利は
変わらないのかな。
拡張機能使い倒さないと、GLはハードの性能引き出せないしね。

そしてスレ違いな気がしてきますたsage
349papu:04/07/25 22:07
cygwinでg++3.3.1-3を入れて、プログラムファイルをコンパイルすると、core dump
ってでます。インストールに失敗しているからなんでしょうか?
詳しい方、ご教授願います。
質問が不明瞭
>>349
$ echo 'void func () {}' > hoge.cpp
$ g++ -c hoge.cpp
で何と出ます? なるべくそのまま貼ってみて下さい.
352252:04/07/26 08:01
オレもcygwin1.5.10-3にしたらコア吐いた。
ただ一言"core dump"っていうだけ。
cygwin1.5.9-1にしたら吐かなくなった。
何をどうやって、どんなファイルをどうコンパイルしたのかワカラン

あと、どうでもいいけど "core dumped" じゃなくて "core dump" なのか
まあ説明不足だよなあ。エスパーはいないし。
TMPやHOMEに日本語が入ってるんで、環境変数TMPDIR に /tmpを
設定して回避した人がいないわけではないらしいが、どのみち…
355252:04/07/26 16:27
>>353
>何をどうやって、どんなファイルをどうコンパイルしたのかワカラン
オレの場合は
int main(void) { return 0; }
だけのファイルでもコアダンプした。
コンパイラ等のインストールは全部setup.exe任せ。

>あと、どうでもいいけど "core dumped" じゃなくて "core dump" なのか
たぶん "core dumped" っすね。
cygwin1.dllとcyggmp-3.dllファイルは
勝手に2次配布してもいいのでしょうか?
プログラムソースはきちんと公開します。
>>358
その二つのライセンスを明示して、
dllをビルドするのに使ったソースを渡せるようにしておけば、
勝手に配ってよろしいはず。
>>359さん
わかりました。
アリガト!(´▽`)ございました
361デフォルトの名無しさん:04/08/17 12:01
こんにちは。
cygwin + gccによるWinInetの扱いがうまくいきません。

<サンプルソース(sample.c)>
#include<wininet.h>
int main(void){
HINTERNET hInet;
//単に、InternetOpenが使えるかチェックしているだけ
hInet = InternetOpen("Test", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
return(0);
}

<もののありか>
wininet.h: /usr/include/w32api にある。
wininet.dll: c:\WINDOWS\system32 にある。

<コンパイル結果>
bash-2.05b$ gcc -lwininet sample.c
/cygdrive/c/DOCUME~1/XXX/LOCALS~1/Temp/ccH7TWGo.o(.text+0x81):sample.c:
undefined reference to `_InternetOpenA@20'
collect2: ld returned 1 exit status
bash-2.05b$

<考察>
wininet.hにはInternetOpenの宣言があるから、wininet.dllへのリンクがうまくなされていないようである。
「wininet.libも必要なのか?」と思ってみたが、「ライブラリがない」というエラーも出ないので、違うような
気もする。
 というわけで、原因についてお分かりになられる方がいらしたら、是非アドバイスをいただけませんでしょうか。
よろしくお願いします。
362デフォルトの名無しさん:04/08/17 12:06
GNU+Cygnus+Windows=Cygwin
Minimum+GNU+Windows=MinGW
> $ gcc -lwininet sample.c

これを
$ gcc sample.c -lwininet
こうしてみそ。

364361:04/08/17 13:19
>>363 殿、
ぐわわわーーん。
No error finishです!
オプションの記述順って関係あったのでしたか!
ぜんぜん関係ない方向をいま一生懸命調べていたところでした。
先ほどのエラーは消えましたので、ようやくちゃんとした
プログラムに進めます。
どうもありがとうございました。
ふぁっきゅーだね
理由があるとはいえ、わかりにくい仕様だよな。
367361:04/08/17 15:27
>> 365-366 さん、
man gcc
の-l のところを見たら、以下のようにありまして、理解しました。
失礼いたしました。

It makes a difference where in the command you write this option;
the linker searches and processes libraries and object files in the
order they are specified. Thus, foo.o -lz bar.o searches library z
after file foo.o but before bar.o. If bar.o refers to functions in
z, those functions may not be loaded.
368デフォルトの名無しさん:04/08/18 14:37
GNU=ぐにゅ
GCC=ぐにゅしーこぱら
369デフォルトの名無しさん:04/08/18 15:59
プログラミングの勉強始めようと思ってmingw-3.10をダウンロードして
ttp://www7.plala.or.jp/keny01/win32/xml/index.html#sub1-4
のプログラムをコンパイルしてみたんですが

C:\DOCUME~1\Shunsuke\LOCALS~1\Temp/ccuAaaaa.o(.text+0x87):window.c: undefined reference to `GetStockObject@4'

と出てa.outが出てきませんでした。何が問題なのでしょうか。
370デフォルトの名無しさん:04/08/18 16:00
a.outじゃなくてa.exeです。ごめんなさい。
-mwindows
素早い回答ありがとうございました。
>>368
GCC は、GNU Compiler Collection なんだが
>>369
がんがれシュンスケ!!
一応ツッコミを入れておく。
>>373
途中で苦し紛れに改名しただけだけどな
376デフォルトの名無しさん:04/08/23 19:56
gcc3.4 なんかチェックが厳しくなったような気がするんですけど

今までコンパイルできてたソースで
コンパイルエラーが多発
gcc3.4はまだ駄目ぽ
GCC自身のsrcが汚すぎ
379デフォルトの名無しさん:04/08/25 23:11
cygwinの標準インストールを行った環境で、以下のプログラムをコンパイルしたらエラーが出てきました。

// console.cpp
#include <iostream>
using namespace std;

int man()
{
  cout << "Hello World\n";
  return 0:
}
----------------------
$gcc console.cpp

/cygdrive/c/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ccePxVIZ.o(.text+0x29):console.cpp:
undefined reference to `std::cout'
/cygdrive/c/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ccePxVIZ.o(.text+0x2e):console.cpp:
undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::
operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<c
har> >&, char const*)'
/cygdrive/c/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ccePxVIZ.o(.text+0x57):console.cpp:
undefined reference to `std::ios_base::Init::Init[in-charge]()'
/cygdrive/c/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ccePxVIZ.o(.text+0x72):console.cpp:
undefined reference to `std::ios_base::Init::~Init [in-charge]()'
collect2: ld returned 1 exit status

-mwindowsオプションをつけても駄目でした。
CプログラムのHelloWorldはコンパイルできました。C++で失敗するのは何が原因なんでしょうか?
g++ console.cpp
>>380
そっ・・・そんな事だったのかー!





ありがとうございます・゚・(ノД`)・゚・
>>379
すいません、凄く笑いました
>>378
初めて見た時にさ…「ミチャッタ━━━━(゚∀゚)━━━━ッ!!」て叫んじゃったよ。
いや、まさかあんなことになってるとは思いもしてなかったから、ショックでかかった。

最近、MinGWでクロスコンパイラがどーしても欲しくなってGCC3.2をソースから
自前でビルドしなおすことになったんだけど…
「マタミチャッタ━━━━(゚∀゚)━━━━ッ!!」て叫んだよ。

当たり前なんだけど、ただひたすら要求とバグ修正が積み重ねられてるばかりで、
方向性が定まってメンテその他が行われているわけじゃないから、ニッチなことしようとすると
MinGWのMLにある情報とかも必ずしも正解ばかりじゃないし、本当自分だけが頼りで
あちこち直したり書き換えたり目に見えてるバグ取ったりしなきゃならない。

で、それでもなんとか動くコンパイラのゲットに成功したんだけど、達成感よか
生きて帰れてよかった感の方が強かった。
本当、日ごろメンテしてるハカーの皆様には頭下がるわ。
スキルを積むとは、触らぬべき場所を感じ取る能力をつけることである
- デフォルトの名無しさん
そんなこと言われると見たくなっちゃうやつ...priceless
>>379
俺も最近mingw使い始めたけど全く同じミスで数時間悩んだ。
>>379
console.cpp: In function `int man()':
console.cpp:7: error: syntax error before `:' token

/usr/lib/gcc-lib/i686-pc-cygwin/3.3.1/../../../libcygwin.a(libcmain.o)(.text+0x7c): undefined reference to `_WinMain@16'
collect2: ld returned 1 exit status

>>386
undefined reference to `std::cout' って出てる時点で、
std::cout が入ってるライブラリをリンクすればいいんだな、と気付きさえすれば、
悩むことなく gcc console.cpp -lstdc++ にたどり着きませんか?
>>387
あ、ごめん。>>379のman()はミスで実際はmain()です。下のエラーもmain()と正しく書いたものによる結果です。
cygwinでgccを使ってC言語を勉強しています。
cryptを含んだ部分が以下のようなコンパイルエラー
が出てしまいます。
何か解決法はないでしょうか?ご教授お願いします。
コンパイルオプションで-lcryptはつけています。

In function `main':
warning: passing arg 1 of `strcpy' makes pointer from integer without a cast
warning: passing arg 1 of `strcpy' makes pointer from integer without a cast
/tmp/cc657vty.o(.text+0x41):crack.c: undefined reference to `_crypt'
/tmp/cc657vty.o(.text+0x6a):crack.c: undefined reference to `_crypt'
/tmp/cc657vty.o(.text+0x93):crack.c: undefined reference to `_crypt'
/tmp/cc657vty.o(.text+0xb6):crack.c: undefined reference to `_crypt'
collect2: ld returned 1 exit status
390389:04/09/08 07:59
ソースは以下のとおりです。
/* gcc crack.c -lcrypt */
#define _XOPEN_SOURCE
#include <stdio.h>
#include <unistd.h>
#include <string.h>

int main(){

const char* pass="password";
const char* salt="Uh";
const char* pass2="passwore";
char p[14],q[14];

printf("%s=%s\n",pass,crypt(pass,salt));
printf("%s=%s\n",pass2,crypt(pass2,salt));
strcpy(crypt(pass2,salt),p);
strcpy(crypt(pass,salt),q);
printf("%d\n",strcmp(p,q));

return 0;
}
crypt() より前に、strcpy() の使い方を学んだほうが良いと思うよ。
392389:04/09/08 14:26
>391
指摘ありがとうございます。
strcpyの部分修正してみたんですが、
修正前と同じようなエラーが出ます。
> warning: passing arg 1 of `strcpy' makes pointer from integer without a cast
> warning: passing arg 1 of `strcpy' makes pointer from integer without a cast

これでわかるのは、crypt() のプロトタイプがちゃんと include され
ていないこと。cygwin では crypt.h を include する必要がありそう。

crypt() の実体は libcrypt で合っているようだけど、
/* gcc crack.c -lcrypt */
ほんとにこの通りにコンパイルしてます?

394389:04/09/08 18:05
crypt.hをインクルードしたらできました!
ありがとうございます!
395デフォルトの名無しさん:04/09/17 20:05:29
質問させてください。
以下の3つのヘッダファイルをインクルードしています。
#include <netinet/in.h>
#include <sys/socket.h>
#include <arpa/inet.h>

何もオプションをつけなければコンパイルできますが、
-mwindows -mno-cygwin オプションのうち1つ以上をつけてコンパイルすると
以下のエラーが発生します。

test.c:1:24: netinet/in.h: No such file or directory
test.c:2:24: sys/socket.h: No such file or directory
test.c:3:23: arpa/inet.h: No such file or directory

これはMinGWの制限なのでしょうか?この解決策はありませんか?
396デフォルトの名無しさん:04/09/17 20:47:31
mingwにposixレイヤは無いから
素直に-mno-cygwinを外してコンパイルしる。
397395:04/09/18 00:26:09
>>396
Win32APIを使ってcygwin1.dllに依存しないGUIアプリケーションを作成したいのですが…
やっぱり無理なんでしょうか…
398デフォルトの名無しさん:04/09/18 00:37:55
何故そうなるw
399デフォルトの名無しさん:04/09/18 00:47:27
>>397
そうしたければ
#include <netinet/in.h>
#include <sys/socket.h>
#include <arpa/inet.h>
この辺使わないでWinSock使って下さい
400デフォルトの名無しさん:04/09/18 03:31:50
こうして見るとGNU関係のWindows物って中途半端なやつばっかりだね
使えねえ団体だな
401デフォルトの名無しさん:04/09/18 04:14:24
cygwin1.dllを使った場合って作ったソフトもGPLに縛られちゃうんだっけ?
402デフォルトの名無しさん:04/09/18 04:24:39
ばりばりGPLでっせ
悲惨ですな
403デフォルトの名無しさん:04/09/18 23:50:32
それが嫌ならVisualなんたらを買えってことでいいんでない?
404デフォルトの名無しさん:04/09/19 00:04:23
買わなくても
タダで使えるVisual C++ $2
http://pc5.2ch.net/test/read.cgi/tech/1086287039/
があるよ。
405デフォルトの名無しさん:04/09/22 11:35:58
sygwin + gcc3.3.3 + STLport4.5.3
うまく動きますか?
406デフォルトの名無しさん:04/09/22 11:38:07
sygwinだと多分動きません
407デフォルトの名無しさん:04/09/22 11:42:56
>>405
間違いました。。
cygwin + gcc3.3.3 + STLport4.5.3
うまく動きますか?
408デフォルトの名無しさん:04/09/22 11:57:34
>>407
動きます。
409デフォルトの名無しさん:04/09/23 01:44:11
cygwinのldでブートセクタを生成しようとしてるんですが

ld -T boot.ls -o boot boot.o
したら
ld: PE operations on non PE file.
というエラーになって生成できません。

AMD k6-2のLinuxではちゃんとブートセクタが生成されて動作できました。
Cygwin版特有のオプション等が必要なんでしょうか?
解決方法を教えて下さい。
よろしくお願いいたします。

boot.ls
-----------------
OUTPUT_FORMAT("binary");
MEMORY
{
body : org = 0, len = 510
sign : org = 510, len = 2
}
SECTIONS
{
.text : { *(.text) } > body/* executable code */
.rodata : { *(.rodata*) } > body/* constants */
.data : { *(.data) } > body/* initialized data */
.bss : { *(.bss) } > body/* uninitialized data */
.sign : { SHORT(0xAA55) } > sign/* boot signature */
}
410デフォルトの名無しさん:04/10/06 15:19:27
起動するとウインドが一個出てきて、逝ってよし!ってかいてあって
下にテキストウインドウがあって、何か入れると
その入力文字が逝ってよしの下に出てきて
入れた文字が“はい”だったら、10カウントしてウインドが閉じる。

そんなプログラムのソースをだれか見せれ。
おながいしまふ。
411 ◆FIcNi4f8js :04/10/06 15:22:49
>下にテキストウインドウがあって、何か入れると
>その入力文字が逝ってよしの下に出てきて

ここで「はい」以外を入力したときはそのあとどうするの?
スクロールさせてまた「逝ってよし!」って出すの?
412デフォルトの名無しさん:04/10/06 16:44:57
ウインドウ閉じて終了でつ
413デフォルトの名無しさん:04/10/06 16:54:17
せめてフローチャートきぼんぬ
414 ◆FIcNi4f8js :04/10/08 09:04:20
で、質問者はもういない。と。
本気で作って欲しければ書き込んだスレくらいウォッチし続けるよな。
415デフォルトの名無しさん:04/10/08 13:57:54
Eclipse+CDTでGNU make走らせてるんですが、
makefile中にobjdump書いたらGNU makeがエラーを出します。

これってobjdumpの出力先を" > hogehoge.lst"にしている処理が
いけないみたいなんですが、objdumpをコマンド入力からやる以外に
解決法ってあるのでしょうか?
416デフォルトの名無しさん:04/10/10 02:20:21
>414
居るけど。
フローチャートかけるくらいなら、訊くわけないじゃん。
417デフォルトの名無しさん:04/10/10 11:15:36
おいフローチャートも書けないのかよ
418デフォルトの名無しさん:04/10/10 18:28:25
フローチャートなんて書く気がしない。
419デフォルトの名無しさん:04/10/10 18:53:02
>>418
じゃあ他のでもいいよ
420デフォルトの名無しさん:04/10/10 19:08:12
文章(箇条書き無し)これ最強。
421デフォルトの名無しさん:04/10/11 01:26:10
(1)プログラムを起動する
   エクスプローラーでダブルクリック
(2)ウインドが一個出てきて、逝ってよし!って書いてある。
   逝ってよし!の下にテキスト記入欄が開いている。
(3)文字をいれてエンターキー押す
(4)いれた文字がテキスト欄の下に表示される。
(4)’いれた文字が “はい”だったら 5秒後にウインドウが閉じ、プログラム終了。


これで伝わるでしょうか?
よろしくお願いします。
422デフォルトの名無しさん:04/10/11 02:47:54
で、それがこのスレとどんな関係が?
423デフォルトの名無しさん:04/10/11 05:04:39
>>421
いれた文字が「はい」以外だったら(4)のあとどうするんだ?終了するのか?
424デフォルトの名無しさん:04/10/11 05:11:15
ぷぷぷ
426421:04/10/11 05:25:55
>>424
激しくありがとうございます!!
でも動かし方がわかりません!!!
427デフォルトの名無しさん:04/10/11 09:34:29
>>426
おまいの目は節穴か
428デフォルトの名無しさん:04/10/11 10:19:35
ポカーン
429デフォルトの名無しさん:04/10/11 10:29:27
スレがとことん汚れたな。
430デフォルトの名無しさん:04/10/11 11:49:15
>>423
(3)を待ちます。
431デフォルトの名無しさん:04/10/11 17:34:52
ツマンネ
432デフォルトの名無しさん:04/10/11 18:48:09
>>426
man chmodしてみ
433デフォルトの名無しさん:04/10/11 19:40:32
424さん ありがとうございます。 名前変えましたがやってみました

$ gcc -O2 -Wall -mwindows -DSTRICT itteyoshi.cpp -o itteyoshi.exe
iii.cpp:124: error: 'tcscmp' undeclared(first use this function)
iii.cpp:124: error:(Each undeclared identifier is reported only once for each function it appearus in.)
iii.cpp:143: error: '_tcslen' undeclared(first use this function)

$
434デフォルトの名無しさん:04/10/11 20:59:36
なあおまえら、GCCな俺になんか質問ある?
あと3時間の寿命だけどさ
435デフォルトの名無しさん:04/10/11 20:59:57
ID表示無しか
436デフォルトの名無しさん:04/10/12 00:40:25
424じゃないが、-mno-cygwinも追加するとどう?
437424:04/10/12 01:39:02
>433
_tcscmp や _tcslen は tchar.h で定義されているマクロです。
tchar.h の中に _tcscmp や _tcslen はありませんか。
438デフォルトの名無しさん:04/10/12 21:48:58
>>433
エラーの行番号が1つ小さいんだけど。
どっか1行削ってません?
439デフォルトの名無しさん:04/10/13 03:05:09
#include <tchar.h> を削ってたりして……
440デフォルトの名無しさん:04/10/13 17:28:57
皆様ありがとうございます。
MinGW¥binにパスを通したら 動きました。!

ところが
表示が
・$B@B$C$F$h$7!*・(B

と出てしまいます。
441デフォルトの名無しさん:04/10/13 20:59:48
>>440
それが表示されることはありえない
442デフォルトの名無しさん:04/10/13 23:09:58
コピペではなく、手打ちしたので、半角全角が混ざっているかもしれませんが
それが表示されたのは事実です。
443デフォルトの名無しさん:04/10/13 23:37:29
$B ビッグなナニが
@B バックから
$C カミング!カミング
$F ふぁっく ふぁ〜く
$h ほーるへ
$7 セブンラーッシュ
!* (自主規制)
・(B (バードッ)











・・・いまいち
444デフォルトの名無しさん:04/10/14 00:00:36
>>440
ソースファイルの日本語部分が ISO-2022-JP でエンコードされちゃったんですね。
エディタは何を使いましたか。
例えば「サクラエディタ」ならば保存時に文字コードを選択できるので
必ず SJIS (Shift_JIS) で保存するようにして下さい。
445デフォルトの名無しさん:04/10/14 01:32:57
>>444
どうもありがとうございます。仰る通りでした。

皆様、どうとありがとうございます。
これで取っ掛かりができました。
446デフォルトの名無しさん:04/10/14 01:57:55
EUCが入ってるのCソースがコンパイルできないことがあるんすけど、
cygwinだとどーすればいいの?
447デフォルトの名無しさん:04/10/14 11:06:51
>>446
EUCなら問題ない
448デフォルトの名無しさん:04/10/16 03:14:09
cygwinのgccからコモンダイアログを使用したいんですけど、
方法ありませんでしょうか、googleなどで一通り調べたんですが見つからなくて。
よろしくお願いします。
449デフォルトの名無しさん:04/10/16 04:26:06
>>448
何も特別なことなどないが
450デフォルトの名無しさん:04/10/16 05:00:45
>>449
勉強不足で申し訳ありませんが、具体的な方法、ソースコードなどご存じでしたらお教え頂けませんでしょうか、どこかのHP等でも結構ですので、よろしくお願いします。
451デフォルトの名無しさん:04/10/16 12:44:57
452デフォルトの名無しさん:04/10/16 20:06:34
cygintlがないと起こられるんだけど、どうしたらいい?
453デフォルトの名無しさん:04/10/16 20:17:07
あcygintlとcygintl-1と-2はあるんだけど-3がないのよ。
454デフォルトの名無しさん:04/10/16 20:27:42
あ、Reinstall選んだら大丈夫に成ったごめん
455デフォルトの名無しさん:04/10/18 15:19:34
Windows Services for UNIX 3.5を使えばCygwinと同等の機能が構築できるんでしょうか?
あと、両製品の違いなんかも教えてくださいm(__)m。
456455:04/10/18 17:09:30
すいません
他のところにスレありましたね
失礼しました
457デフォルトの名無しさん:04/10/20 20:24:16
cygwinという物を今日初めて知り、ここへたどり着きました・・。

ttp://www.ohmsha.co.jp/data/link/4-274-06526-X/
上記のリンクの通りの作業を行いたいのですが
bash: patch: command not found
と・・・・・表示されます

つまりは、patchコマンドのインストール方法を探しています。
どうか宜しくお願いします(;´д`)ノ
458デフォルトの名無しさん:04/10/20 23:48:40
cygwinのsetupをもう一回してpatchを追加
459デフォルトの名無しさん:04/10/21 17:15:30
>>458
解決しますた。愛してます。
460デフォルトの名無しさん:04/10/21 18:06:27
>>459
坊や、お尻を出してごらん。
461デフォルトの名無しさん:04/10/31 16:10:23
462デフォルトの名無しさん:04/11/10 13:32:50
#include <windows.h>
#include <ras.h>
int main() {
RASCONN conn;
DWORD entnum, size = sizeof(RASCONN);
int len; char buf[12];
ZeroMemory(&conn, size); conn.dwSize = size;
RasEnumConnections(&conn, &size, &entnum);
len = wsprintf(buf, "%d",entnum);
WriteFile(GetStdHandle(STD_OUTPUT_HANDLE), buf, len, &size, NULL);
return 0;
}
というファイルをgccでコンパイル&リンクすると-lrasapi32を指定しているのに
>$ gcc -lrasapi32 r.c
>/cygdrive/e/tmp/ccazArKZ.o(.text+0x7e):r.c: undefined reference to `_RasEnumConn
>ectionsA@12'
>collect2: ld returned 1 exit status
とエラーがでてしまいます。vc6では
cl r.c /link rasapi32.lib user32.lib
でOKなのですが
463デフォルトの名無しさん:04/11/10 13:39:51
gcc r.c -lrasapi32
464デフォルトの名無しさん:04/11/10 13:48:37
おおおリンク成功しますた
ありがとうございます
465デフォルトの名無しさん:04/11/11 02:34:41
MinGW (or Cygwin)用のgdbserverってどこかにありませんか?
466デフォルトの名無しさん:04/11/11 23:54:51
cygwinでSTL使いたいときってどうすればいいの?
467デフォルトの名無しさん:04/11/12 08:16:50
#include <iostream>
468デフォルトの名無しさん:04/11/12 23:00:57
>466
普通に。
強いて言うなら -lstdc++ かな。
469デフォルトの名無しさん:04/11/12 23:23:36
ああ、それ忘れがちだな
470466:04/11/13 02:03:44
ありがたう
471デフォルトの名無しさん:04/11/13 03:48:20
それってコンパイラにg++つこたらデフォにならない?
472デフォルトの名無しさん:04/11/13 10:02:25
gccのバイナリ名をi686-maid3-gccにすると萌える
473デフォルトの名無しさん:04/11/13 14:25:08
いつの間にかDirectX9のライブラリが入ってるね。
完璧じゃないみたいだけど。
474デフォルトの名無しさん:04/11/15 14:26:56
DirectX 9 ?
9対応のライブラリがもう組み込まれているのか
475デフォルトの名無しさん:04/11/16 22:27:36
ライブラリっつっても、COM メインだからほとんどヘッダファイルだけだし
476デフォルトの名無しさん:04/11/16 23:31:51
ヘルパー関数のサポートは無さそうだね。
477デフォルトの名無しさん:04/11/17 11:50:20
日本語パッチ作ってる人には感謝してるんだが・・・本家に取り込んでもらうほうが筋じゃない?
478デフォルトの名無しさん:04/11/17 20:59:37
ハラキリ国独自の言語を作る方が先だ!


ハラキリ丸 - HARAKIRI MARU


479デフォルトの名無しさん:04/11/17 21:02:56
最近某国でクビキリされた青年の影響で
ハラキリ国がクビキリ国と誤認識されるのが唯一の心配でさあ!

もっと大河ドラマとかでハラキリの印象度を高めないとあかん
480デフォルトの名無しさん:04/11/18 04:17:23
日本には元々首狩りの習慣があったのを知らないのか?
481デフォルトの名無しさん:04/11/18 04:27:44
市中引き回しの上磔獄門なんて刑の方が余程残酷だと思うのだが。
482デフォルトの名無しさん:04/11/18 10:17:15
スレ違い話題は他所でやってくれ
483デフォルトの名無しさん:04/11/20 15:22:29
cygwinでwmakerを動かしてます。
マウスホイールでワークスペースを切り替える方法を教えてください。
出来ていたのですがWin再インストールしてしまい
設定がわからなくなってしまいました。
484デフォルトの名無しさん:04/11/20 16:42:57
>>483
板違い。
485デフォルトの名無しさん:04/11/20 16:49:13
Cygwin使っている人いますか? その13
http://pc5.2ch.net/test/read.cgi/unix/1099157755/
486デフォルトの名無しさん:04/11/22 15:07:33
487デフォルトの名無しさん:04/11/24 17:01:56
objdumpでVC6でいうdumpbin /exports 相当のことをやる
オプションを教えてください。

-x で全部出る出力の [Ordinal/Name Pointer] Table
以下数行だと思うんですが。
488デフォルトの名無しさん:04/11/25 22:15:44
#include <windows.h>がエラーになります。(no such file or directory)
コンパイラはgccなのですが、どうすればよろしいでしょうか??
489デフォルトの名無しさん:04/11/25 22:19:15
>>488
Cygwin ですか?
それなら Cygwin のインストーラで WIndows SDK のヘッダーをインストールしないとだめ。
490デフォルトの名無しさん:04/11/25 22:19:36
gccつってもなぁ。mingwならあるはずだし。
491デフォルトの名無しさん:04/11/25 22:55:41
>>488
マルチ
492488:04/11/25 23:06:04
大学で使っているものなので、いまいちわからないです。
MinGWなどは見たのですが、使い方がわかりません。
アホな質問ですいません。
493デフォルトの名無しさん:04/11/26 01:16:33
大学の先生に聞けばいいじゃん
494デフォルトの名無しさん:04/11/26 01:37:53
cygwinでiopermをリンクしてシリアルポート(0x3F8)を直接叩いてるんですが
どうも反応しません。パラレルポートは反応します。
同じプログラムでlinux上では動いています。
どなたか教えてください。
495デフォルトの名無しさん:04/11/26 07:52:10
All Installにすると、xorgの部分で無限ループに陥ってしまう。
メーリングリストにこんな書き込みが。
http://www.mail-archive.com/[email protected]/msg12839.html

要は、そこだけ後からインストールしろってことかな?
496デフォルトの名無しさん:04/11/26 09:22:31
よくあることです
497デフォルトの名無しさん:04/11/27 21:48:19
gcc g++ をつかって直接Windows上で動かせるモノって作れますか?
CUIじゃなくて実行モジュールをクリックして機動できるようなコンパイル
オプションとか・・・。
498デフォルトの名無しさん:04/11/27 22:40:41
age
499デフォルトの名無しさん:04/11/27 23:41:33
>>497
猿でもできる。
500デフォルトの名無しさん:04/11/28 00:38:25
>>497
Win32APIの使い方を知ってれば大丈夫
501デフォルトの名無しさん:04/11/28 10:39:39
>>497
ー`)つ>424
502デフォルトの名無しさん:04/12/05 16:39:55
WideCharについて質問。
wchar_tの実態はshort intで、一文字2byte固定。文字or文字列を入れる時はリテラルの先頭にLを付加する。
TEXT("文字列")を使うと、UNICODE指定した時としてない時でマクロが別々に展開してくれる。

で、libcじゃwchar_tは内部でUCS-4/UTF-32を使ってて4byteっていうのが調べてるうちに出てきて、どっちやねん
ってのが一つと、wchar_tの場合標準入出力に何使えばいいの?wcout使おうとしたらエラー出た。
503デフォルトの名無しさん:04/12/05 17:55:58
>>502
glibcの話と混同してないか?
504デフォルトの名無しさん:04/12/05 18:27:48
STLPortを使おう!!
505デフォルトの名無しさん:04/12/05 19:47:11
>>503
う、してるかも。えーと、えでもlibcってCの標準ライブラリで、glibcが
それのGNUの実装だよね?glibcが独自に拡張してるってこと?
実体はlongあたりなのかな?

>>504
つまり、GCCにもともと付いてるライブラリじゃwcoutは使えないって事?
506デフォルトの名無しさん:04/12/05 20:30:36
>>505
拡張っつうかwchat_tの中身は標準じゃ定義されてない。
wchar_tの中身は気にしちゃいけないことになってるけど、glibcだとUnicodeに
固定されてる。Cygwinで使われてるnewlibは一文字2byte。
507デフォルトの名無しさん:04/12/05 20:54:46
>>505
>つまり、GCCにもともと付いてるライブラリじゃwcoutは使えないって事?

そういうの調べるのも面倒でSTLPortに逃げ(?)た。
508デフォルトの名無しさん:04/12/05 20:57:19
えーと、そこで言うUnicodeってのはUCS-4ってこと?

wchar_tはワイド文字を扱うものだけど、中身は特に決められてない。
基本的にwcxxx関数を介した操作することでブラックボックス化されてて
内部コードや、型の大きさは考えるな。

wchar_tの中身はそれぞれ
VC/BCC = 2byte UCS-2/UTF-16
glibc = 4byte UCS-4/UTF-32
newlib = 2byte ?
mingw = ? ?

って理解になりましたけどOK?
509デフォルトの名無しさん:04/12/05 20:59:05
>>507
つまり、STLPortなら何も考えずにwcoutとか使えるって事っすね。ありがとうございます。検討します
510デフォルトの名無しさん:04/12/05 21:14:01
>>508
VCやBCC、mingwn、cygwin等のwchar_tが2byteでUCS-2なのはwindowsがそういう糞仕様だから
511デフォルトの名無しさん:04/12/05 21:47:52
あーなるほど、Windowsに関してはライブラリじゃなくて、Windows依存なんすね。
糞な理由教えてください。とりあえずUCS-2で問題ないような気がするんですが。
甘いですか?

それと、GCCって2.95からの変更ってどの程度ありました?いや、邦訳されてる
MANが古くて。コマンドラインオプションは2.95のMANの内容でとりあえず問題ない
という理解で大丈夫ですか?
512デフォルトの名無しさん:04/12/05 21:49:45
>>509 
考えるべきことは結構あるよ。
まずコンパイルで挫けるかも。

まあわかんないことがあったら、
ここもあるし、あるか判らんがSTLPortスレで訊くのもいいだろう。
出来上がったバイナリがデカくなるのは覚悟しておいてね。
513デフォルトの名無しさん:04/12/06 00:44:17
そうなんすか。大人しくwprintf使っときます。おわ、printfのパラメータ忘れてる。。。
514合流あげ:04/12/08 23:44:08
GCC(GNU Compiler Collection)について語るスレ。

GNU本家のGCCページ
http://gcc.gnu.org/

前スレ・過去スレ
・GCCについて part4
http://pc5.2ch.net/test/read.cgi/tech/1090062751/
・GCCについて part3
http://pc5.2ch.net/test/read.cgi/tech/1072484422/
・GCCについて part2
http://pc5.2ch.net/tech/kako/1046/10461/1046179115.html
・GCCについて
http://pc5.2ch.net/tech/kako/1007/10077/1007731543.html

関連スレ
・MinGWを使おう
http://pc5.2ch.net/test/read.cgi/tech/1042611308/
・gcjって使ってる人います?
http://pc5.2ch.net/test/read.cgi/tech/1046627795/
515デフォルトの名無しさん:04/12/09 18:01:56
>>514
たいへん乙!
これで合流完了
516デフォルトの名無しさん:04/12/09 20:54:44
ここは廃棄するの?
517デフォルトの名無しさん:04/12/09 20:55:28
ここに統合したの(^^;
518デフォルトの名無しさん:04/12/09 21:00:20
>>514
>>517
乙ぬ
519デフォルトの名無しさん:04/12/13 10:27:56
0つけたら8進、0xつけたら16進、つけなかったら10進
0bつけたら2進 になるとチョー気持ちいいんだけどなぁ
520デフォルトの名無しさん:04/12/13 10:57:20
>>519
質問です。
0 は 8進法なんですか? 10 進法なんですか?
521デフォルトの名無しさん:04/12/13 12:06:39
10進法です。
8進法なら00だろが。
522デフォルトの名無しさん:04/12/13 12:40:44
>>521
ちがう。8進だ!
0 は10進では表せない。
523デフォルトの名無しさん:04/12/13 12:57:02
0 は 2進 ですYO!
524デフォルトの名無しさん:04/12/13 17:52:21
2進でも、8進でも、10進でもどれでも0は0
525デフォルトの名無しさん:04/12/13 18:17:41
Cでは0は8進リテラル。
526デフォルトの名無しさん:04/12/14 03:21:14
それがどうかしましたか?
527デフォルトの名無しさん:04/12/14 05:42:56
gccスレを何でここに合流させたん?
一子相伝なgccスレを?
528デフォルトの名無しさん:04/12/14 10:18:29
なんかいつのまにか変なのに占拠されてる…
ここはgccのみのスレではなく、MinGWやCygwinでの開発一般についてのスレだと思っていたんだが、違うのか?
529デフォルトの名無しさん:04/12/14 12:03:38
MinGW スレもここに統合しよう、うん。
530デフォルトの名無しさん:04/12/14 17:24:46
>>528
「占拠されてる」ってほど増えてないじゃん
531デフォルトの名無しさん:04/12/14 20:09:49
数が問題なわけではないでしょ
532デフォルトの名無しさん:04/12/14 20:19:35
GCCは統合するなよ。
533デフォルトの名無しさん:04/12/14 20:33:15
>>531
数も重要なファクタだと思うよ
分けようと思えばいくらでも細分化が可能なわけだから
534デフォルトの名無しさん:04/12/14 21:21:09
スレ立てりゃいいだけの話なのに、どこから統合なんて出てきたんだ?
535デフォルトの名無しさん:04/12/14 22:09:07
立て直そうか
536デフォルトの名無しさん:04/12/14 22:10:49
>>534 良い事言うね。
537デフォルトの名無しさん:04/12/14 22:24:44
1. cygwinスレ(既にある)
2. mingwnスレ(既にある)
3. gccスレ
4. cygwin+mingwnスレ
5. cygwin+gccスレ
6. mingwn+gccスレ
7. cygwin+mingwn+gccスレ(このスレ)
じゃ3456と立ててくれ
538デフォルトの名無しさん:04/12/14 23:02:19
様々なhostで動き、様々なtargetを持つGCCと、
プラットフォームの一つでしかないMinGWあるいはCygwinが何故一緒くたにされるのか理解できない
539デフォルトの名無しさん:04/12/14 23:24:45
スレタイに入っているんだから仕方ない
540デフォルトの名無しさん:04/12/14 23:33:49
スレタイの+ってOR演算だったのか。
541デフォルトの名無しさん:04/12/15 01:03:12
>>540
537書くときちょっと悩んだよ
542デフォルトの名無しさん:04/12/15 01:49:43
しばらくcygwinをつかってなかったのですが、
久しぶりにcp A Bとうってみたところ、できたBのパーミッションがおかしいです。
プロパティでフルコントロールにチェックを入れないと使えないファイルが出来上がります。

何が原因でこうなったのかわかりません。
心当たりのある人っています?
543デフォルトの名無しさん:04/12/15 02:32:48
.bshrc
mask=
544デフォルトの名無しさん:04/12/21 13:23:28
gccってWindowsCE(CPU:mips)上で動くように出来ますか?
多分gccをソースからコンパイルする時にmips用のオプションつけて
やればできるような気がするのですが、cygwin上でどう操作すれば出来るのか
わかりません。
545デフォルトの名無しさん:04/12/21 13:41:48
cygwin 上で、まず mips ターゲット cygwin ホストのクロス gcc を作っ
て、そのクロス gcc を使って mips ターゲット mips ホストの gcc を
ビルドする。という方法で理論的には可能。

546デフォルトの名無しさん:04/12/23 20:49:53
gccってどっからどうやっておとすの?
547デフォルトの名無しさん:04/12/23 20:57:52
548デフォルトの名無しさん:04/12/23 22:22:53
>>546
クリスマスが近いからってそう焦るなよ。
女をおとすってのは、一筋縄じゃ行かないぜ。
549デフォルトの名無しさん:04/12/24 07:03:01
>>547
バイナリがみつからんとです・・・
550デフォルトの名無しさん:04/12/24 15:46:00
>>544
おおむね>>545の方法で逝けるが
cygwin 上で --target=mips --host=mips のように configure して
スタンドアロンコンパイラのバイナリを作ってしまうことも不可能ではない。
「カナディアンクロス」でぐぐってくれ。

ただ、カナディアンクロスが成功させるのに必要な条件は、
「ターゲットのライブラリ類が揃っていること」だったりするので、
まずは第一歩として>>545のように、ターゲット生成が可能な
環境をビルドするハメに陥る、だろう、きっと。

Linux host で、「mips4-elfバイナリを吐くCygwinバイナリ」を作ったことはある。
551デフォルトの名無しさん:04/12/26 13:01:03
cygwin内のmakeを使い、プログラムをコンパイルします。
gccを使わずにclを使うつもりなんですが、この場合ライセンスはどうなるのでしょうか?
生成物であるバイナリがcygwin.dllを参照しなければ、OKと考えていいんでしょうか。
552デフォルトの名無しさん:04/12/26 14:35:12
>>551
キミにとって「ライセンスがOK」がどういう状態が何なのか、説明し
てもらわないと誰にもわからない。

553551:04/12/26 15:07:25
あ、すんません。
作成したプログラムがGPLになるかどうかってことです。
もともとソースごと配布しようと思っているので、問題ないといえばないのですが・・・

と思って検索してたら
http://www.sixnine.net/cygwin/translation/faq/faq_7.html
>コンパイルされた実行プログラムが Cygwin ライブラリを使わないように
>ツールを修正しない限り、あなたがコンパイルしたプログラムもまた、
>誰もがソースコードを利用可能である GPL で配布されるフリーソフトウエアになる

とあるようですね。
コンパイル後のバイナリからはCygwinライブラリを呼ぶことにはならないと思うので、
GPLでなくてもかまわないということかな。
554デフォルトの名無しさん:04/12/26 16:05:30
clってvcの? だったらvcのライセンスじゃないの。
makeは関係ない。
555デフォルトの名無しさん:04/12/26 17:09:10
MSVCで作られた(と思われる)c++なDLLをcygwinから使うことは
できんものだろうか…。

具体的には
http://www.avisynth.org/ ←これのDLLを呼び出している、

http://students.washington.edu/lorenm/src/avisynth/avs2yuv/
これのavs2yuv.cpp (avs2yuv-0.22.zip)をcygwin + g++で
コンパイルしたいんだけれども。

コンパイルそのものはg++一発で通る。
で、実行すると
LoadLibrary, GetProcAddress、GetProcAddressした関数の呼び出しまでは
すんなり通るんだけど、その後のメソッド呼び出しでsegfaultしてしまう。

やっぱり内部表現が違う?回避策はないのかなぁ…。
それとも何か根本的に勘違いしてたりするんだろうか。
556デフォルトの名無しさん:04/12/26 18:40:51
呼び出し規約はそろえてるか?
__fastcallと__stdcallだった気がするけど気がするだけなんで
自分で調べてください。
557デフォルトの名無しさん:04/12/26 20:28:52
extern "C" なら ok だったけど C++ なのはなあ
558デフォルトの名無しさん:04/12/26 22:44:53
DLL内で生成された、COMっぽいポインタを返してるね
vtblの構成やcalling conventionが違うだろうから、
gccからは使えんと思う
逆に言うと、合わせられれば呼べる

と思ったけど例外を使ってるっぽいな、
こりゃどうあがいてもむりだべ。
559555:04/12/26 22:52:52
ああ…やっぱりダメですか。ありがとうございます参考になりました>>556-558
仕方ないのでMSVCでもう一皮ラッパー作って
gccからはC規約で呼んでみることにします…

ううむ、美しくないけど仕方ないかぁ(;´Д`)
560デフォルトの名無しさん:04/12/26 23:09:31
gccでなければならない理由でもあるのか?
561デフォルトの名無しさん:04/12/27 01:53:21
>>555
そもそもコンストラクタ周りの生成規則が違うだろうから無理
例外スロー問題もあるからDLLのクラスならDLL内だけで完結する必要がある
素直にCインターフェースでラップするしかない
C++がクソな理由の1つ
562デフォルトの名無しさん:04/12/27 01:58:51
というかDLLの仕様定義がCインターフェースまでしか考慮されなかったのが原因。
これはWindowsが出来た時代を考えれば仕方がないが。
もっとも、UNIXでも共有ライブラリの参照問題として同じ様な問題がある。
解決法は同じコンパイラ、ライブラリを使う以外ない。
563デフォルトの名無しさん:04/12/27 13:00:50
C# はその辺を解決しようとしてるんだけどね……
564デフォルトの名無しさん:04/12/27 13:31:55
新仕様のDLLとローダとリンカをを作れば無問題
565563:04/12/27 15:16:20
C#っていうか.NETだな
566デフォルトの名無しさん:04/12/27 20:23:40
.NET
同じ事をSUNがやってたら.NETに触る気になったかも。
567デフォルトの名無しさん:04/12/27 22:17:51
.NETにしたところで
Windows\System以下に全部放り込む仕様は改善されたのかね
バージョン問題には何時になったら開放されるのかね
まあスレ違いですな
568デフォルトの名無しさん:05/01/08 14:24:12
filenoが通らないからstdio.h見たらfixmeとか書いてあった。
ウンコー
569デフォルトの名無しさん:05/01/08 22:17:52
Mingwnでcoff libをリンクできますか?
一度試したのですがそのときは実行するとエラーになりました。
ちなみにbcc32 cl open watcomは問題なかったです。
570デフォルトの名無しさん:05/01/09 06:31:52
Mingwnってなんですか?
571デフォルトの名無しさん:05/01/09 11:00:20
572デフォルトの名無しさん:05/01/09 13:35:11
573デフォルトの名無しさん:05/01/09 13:46:31
ふぃれふぉx
574デフォルトの名無しさん:05/01/25 15:13:53
初心者ですまそ。
例えば
-O -O2 -O3
とかコンパイラオプションが重複したらどれが優先されるの?
575574:05/01/25 15:35:33
コンパイラはgccです
576デフォルトの名無しさん:05/01/25 15:42:49
>>575
$ man gcc
〜・〜・〜・〜・(略)〜・〜・〜・〜・
> 複数の -O オプションを指定した場合は、レベル番号の有無に関わらず、最後に指定したものが有効になります。
〜・〜・〜・〜・(略)〜・〜・〜・〜・
577デフォルトの名無しさん :05/01/27 13:52:49
cygwinインストールしたけどgcc使えないッス
どうしたらいいッスか?
578デフォルトの名無しさん:05/01/27 14:06:31
>>577
「使えない」をもちょっと詳しく
なんかエラーでも出てるの?
579デフォルトの名無しさん:05/01/27 14:06:53
あきらめればいいっス
580デフォルトの名無しさん:05/01/27 14:10:27
gccと関連パッケージをsetupしていない予感
581デフォルトの名無しさん:05/01/27 14:12:54
bash: gcc: command has not found
582デフォルトの名無しさん:05/01/27 14:19:13
>581
はい、cygwinのFAQ見てgccをセットアップしてね♪
583デフォルトの名無しさん:05/01/27 14:23:37
単に入れ忘れ
584デフォルトの名無しさん:05/01/28 04:46:34
Develのとこ、Defaultのままで入れたんじゃないのかしら
585デフォルトの名無しさん:05/01/29 01:50:23
readelfやobjdumpってPEのヘッダを読めるようにならないのかな?
そういうパッチって実はもうある?
586デフォルトの名無しさん:05/01/29 03:02:45
objdump はかなーり昔から PE に対応してるよ。
readelf は対応するわけないでしょーが。
587デフォルトの名無しさん:05/01/29 03:15:14
>>586
ああ、オオボケかましてたスマヌ。objdump -Dが
ヘッダの中身をみれるオプションだと思ってた。
正しくは-x。readelfはいらないな。
588名無しさん@Vim%Chalice:05/02/03 11:29:21
mingwnってなんですか。
ネットで調べても全然載っていない・・・
589デフォルトの名無しさん:05/02/03 17:58:59
既出
590デフォルトの名無しさん:05/02/03 18:03:25
mingnwってなんですか。
ネットで調べても全然載っていない・・・
591デフォルトの名無しさん:05/02/03 18:27:12
mingw
592デフォルトの名無しさん:05/02/03 22:25:18
ただのタイプミスだろう
593デフォルトの名無しさん:05/02/03 22:49:45
タイプミスの悪寒
594デフォルトの名無しさん:05/02/03 22:54:09
タイプ嬢
595デフォルトの名無しさん:05/02/06 12:26:29
cygwinをインストールしたのですが、
"notepad" "calc" "explorer" 等のコマンドが使えません。
なにか設定が必要でしょうか?
596デフォルトの名無しさん:05/02/06 12:27:21
サーチパスの問題
597デフォルトの名無しさん:05/02/06 12:41:03
>>596
サンクス。
598デフォルトの名無しさん:05/02/06 21:27:50
WH_GETMESSAGEで,全てのアプリケーションへのメッセージをフックする
アプリを作っています。
自アプリに対するメッセージはちゃんとフックしてるみたいなんですが
他アプリに対してはフックしてくれないみたいです。

たとえば
 ttp://www.tamanegi.org/prog/src-guide/
ここの「wheelfix」は,バイナリで提供されている分はきちんと動きました。
で,自分でソースをダウソして make すると,ぜんぜん期待する動作になりません。
なのでソースの問題ではなく,コンパイル環境の問題だと判断しました。
 (実際,VC++で自作したアプリは,きちんとフックできます)

gcc 3.3.1 (on cygwin) と 3.4.0 (on mingw) の両方で試しました。
一体アタシ何が悪いんでしょうか。
599デフォルトの名無しさん:05/02/06 22:42:30
フックプロシージャがDLL内でないとかじゃないよな?
600デフォルトの名無しさん:05/02/07 00:06:06
>599
レスサンクスコ。
それはないです。
↑で紹介した「wheelfix」も,自分で make するとダメダメだし。

うわー。
gcc 3.4.2 で「wheelfix」を make して実行したとです……
みるみるうちにメモリ使用量が増えていったとです……

愛用の「サクラエディタ」がメモリを喰らい尽くしたみたいでした。
サクラエディタとグローバルフックにどんな関係が?
もうわけわかりません。
601デフォルトの名無しさん:05/02/07 21:19:55
>>598
俺もソレ今ハマッテル。
>自アプリに対するメッセージはちゃんとフックしてるみたいなんですが
>他アプリに対してはフックしてくれないみたいです。

クソ、ゼンゼンワカンネエゾ!!!
頑張るだけ無駄か???
どうしようどうしよう(´・ω・`)ショボーン
602デフォルトの名無しさん:05/02/07 21:37:38
「他アプリに対してはフックしてくれない」 というのは何で判断したの?
>>598のやつはcygwinのsetup.exeで入れたgcc 3.3.3でmakeしてちゃんと動くが
603デフォルトの名無しさん:05/02/07 21:41:05
>>598のやつって、-g付きでコンパイルしてあるよな…なんでだろ。
604デフォルトの名無しさん:05/02/07 21:43:15
605601:05/02/07 22:07:15
取り乱した。

>>602
の発言で我に返って確認してみた。
フックされてる。

プロセス共有変数とnewとかallocatorに問題があった。恥ずかしい。

>>598をよんで「コレだコレに違いない!コンパイラが悪いんだ!」などと思い込んでしまった。
すまなかったgcc。ありがとうgcc,>>602

gccは3.2.3 on mingwでし。
606デフォルトの名無しさん:05/02/07 22:51:52
>>603
べつにおかしかないでしょ
配布用のバイナリはstripした方がいいかもしれんけど
607598:05/02/08 23:58:01
みんなレスサンクスコ。
>602
自分のウィンドウに飛んできたメッセージをつらつらと表示するプログラム作って
まったりと観察しています。

ていうか普通はきちんとコンパイルできてきちんと動くんですよね。
実際,↑で紹介したサイトで配ってるバイナリはきちんと動いてるわけだし。
もうmingw再インストローリングします。
ハッキンガー気取りで弄くって,変なところに変なものをつっこんだに違いないです。
バチが当たったんですね。うあー。

あと最近よくアクセス規制に巻き込まれるのですが
もろゆきさんは私の事が嫌いなのかね。
608デフォルトの名無しさん:05/02/09 00:25:08
>>607
> あと最近よくアクセス規制に巻き込まれるのですが
> もろゆきさんは私の事が嫌いなのかね。

ときどきいるよね、こういう自意識過剰な人。
仮名のケイコさんを自分のこと言われたと思って文句つけたりとか。
609デフォルトの名無しさん:05/02/09 00:42:10
もろゆき?
610607:05/02/11 11:04:38
>608
(;´Д`)
もっとエレガントでセクシーな突っ込みはできんのかね。
611598:05/02/11 12:54:44
そうそう,忘れてました。
新しいbinutilsをダウンスコしたら,正常になりました。
みなさんもgccやg++だけでなく,binutilsも忘れずに更新しましょうね。
忘れるのは私だけですかそうですかそうですねアハハ。


orz
612デフォルトの名無しさん:05/02/12 18:10:48
XDrawText16()
の使い方が分かりません……。Xサーバーで作ったWindowに漢字を描画したい
んですけど……。後半二つの引き数、XItime16とFontっていうのがマニュアル
読んでもよくわかりません……。
XChar2bとかXLoadFont()とか意味不明で……。
使用例とか教えていただけると激しく助かるので、よろしくお願いします。
613デフォルトの名無しさん:05/02/14 03:33:43
なんかサーバとまってない?
614デフォルトの名無しさん:05/02/19 21:04:15
getaddrinfo使うにはこれをttp://win6.jp/Cygwin/index.html
使うしかないんでしょうか?
615デフォルトの名無しさん:05/02/19 21:41:39
それだけならwinsockのでいいんでわ
616デフォルトの名無しさん:05/02/19 22:32:47
cygwinって毎日アップデートするの?
万度癖
617デフォルトの名無しさん:05/02/20 14:02:31
WindowsにMinGWをインストールしてPATHを指定したのですが、
たとえばgcc helloworld.cpp とやると、

D:\Project\C++>gcc helloworld.cpp
C:\DOCUME~1\masa\LOCALS~1\Temp/cc8ebaaa.o(.text+0x2e):helloworld.cpp: undefined
reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char,
std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
C:\DOCUME~1\masa\LOCALS~1\Temp/cc8ebaaa.o(.text+0x3b):helloworld.cpp: undefined
reference to `std::cout'
C:\DOCUME~1\masa\LOCALS~1\Temp/cc8ebaaa.o(.text+0x40):helloworld.cpp: undefined
reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<<
<std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, c
har const*)'
C:\DOCUME~1\masa\LOCALS~1\Temp/cc8ebaaa.o(.text+0x49):helloworld.cpp: undefined
reference to `std::ostream::operator<<(std::ostream& (*)(std::ostream&))'
C:\DOCUME~1\masa\LOCALS~1\Temp/cc8ebaaa.o(.text+0x76):helloworld.cpp: undefined
reference to `std::ios_base::Init::Init()'
C:\DOCUME~1\masa\LOCALS~1\Temp/cc8ebaaa.o(.text+0x95):helloworld.cpp: undefined
reference to `std::ios_base::Init::~Init()'

と、エラーが出てコンパイルできません。
どうしたらいいんでしょうか?
618デフォルトの名無しさん:05/02/20 14:09:02
g++を使え
619デフォルトの名無しさん:05/02/20 14:16:16
>>618
あ・・・・コンパイルできました。
gccとg++って何が違うのでしょう・・・
620デフォルトの名無しさん:05/02/20 14:19:36
寿司。
621デフォルトの名無しさん:05/02/20 14:23:09
gccはCコンパイラ
g++はC++コンパイラ
622デフォルトの名無しさん:05/02/20 16:26:13
-lstdc++
623デフォルトの名無しさん:05/02/20 16:26:55
ばかばっか
624デフォルトの名無しさん:05/02/20 18:05:26
>>623
お前も含めてな
625デフォルトの名無しさん:05/02/20 18:09:51
素晴らしい捨て台詞だことw
626デフォルトの名無しさん:05/02/21 14:50:22
makeファイルって自分で書くのですか?
いろいろリファレンス読んだけどいまだによくわからない。
どうやって覚えたか参考までに聞かせてください。
627デフォルトの名無しさん:05/02/21 15:16:55
>>626
小さいのだと自分で書くけど、大きいのはautoconf/automakeで自動生成するのがよくやられてるかな。
628デフォルトの名無しさん:05/02/21 16:14:06
>>626
でかいアプリを書く時になったら思い出して↓

GNU Autoconf/Automake/Libtool
ttp://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?&ISBN=4-274-06411-5
ttp://www.amazon.co.jp/exec/obidos/ASIN/4274064115/250-2662148-9717857

あーでも買う前にいちお、こちらもどーぞ。
ttp://www.linux.or.jp/bookreview/BR49.html
629デフォルトの名無しさん:05/02/21 21:20:28
autoconf はともかく、automake にメリットを見出せるほどの規模なんてそうそう無い
630デフォルトの名無しさん:05/02/21 21:31:47
こんなところの住人乙
631デフォルトの名無しさん:05/02/21 22:36:03
>>629
autoconfを使うためにMakefile.inを手書きするくらいなら、
素直にautomake使う方が断然楽。
autoconfだけを使うという方がよっぽどメリットないと思われ。
632デフォルトの名無しさん:05/02/26 18:55:18
ShellExcuteExを使ったアプリをgdbでデバッグしているのですが、時々
---Type <return> to continue, or q <return> to quit---
というプロンプトが出てきて一時的に中断されてしまいます。
これを抑制する方法はありますか?
633632:05/02/26 19:25:58
~/.gdbinitに
set height 0
を指定する事によって抑制できているっぽいです。

問題は一応解決したのですが、何故ゆえこういうプロンプトが
出てきてしまうのかご存じの方いらっしゃいましたら教えてください。
634デフォルトの名無しさん:05/02/26 23:12:27
>>631
俺autoconfは使ってるけど、automakeは使ってないよ。
Makefile.in の手書きって、規模が小さければ全然
難しくない。make程度のことをきちんと理解できない
うちからautomakeに頼ると、自分で特殊なルールを
追加したいときに困るだけだと思うけど。

>>626
「UNIX プログラミング環境」のmakeの項がコンパクトに
まとまっててお勧めだったような。cygwin 環境で使って
るなら持っていて絶対損はないと思う。amazonでは新品
はもう手に入らないみたいだけど、ジュンク堂とかには
まだ置いてあったような。
635デフォルトの名無しさん:05/02/27 17:21:57
大学の先輩が autoconf/automakeを使って configureスクリプトを
組み込むと、組み込んだプロジェクトも強制GPLになると話していたのですが
本当ですか?
636デフォルトの名無しさん:05/02/27 17:49:04
GNU make を使うと強制GPLになるのか?
GCC を使うと強制GPLになるのか?
637デフォルトの名無しさん:05/02/27 23:28:43
>>635
頭の悪い奴ばかりの大学なら早めに逃げた方が良いぞ。
638デフォルトの名無しさん:05/02/27 23:56:57
d/rdy
639デフォルトの名無しさん:05/03/02 18:50:14
autoconfが生成したマクロがソース中に入り込むこともあるから微妙。
*.in の中身をちゃんと把握せずコピペとかしてると、
知らないうちにGPLなinline functionとか使われたりする可能性もある。

ちゃんとチェックして道具として使ってりゃ大丈夫だけど、
バカが使うとGPLが伝染る。
640デフォルトの名無しさん:05/03/03 10:22:24
ソフトウェアは著作権だからウザイよなぁ。
ウチのベアリングを使った車を流通させるにはウチの方針に従ってもらう
っていってるのと同じだからな。
こういうパーツに対して著作権の概念で縛るのはおかしいと思うんだけどね。
GNUは反対してるが、ソフトウェア業界はその上に特許権で2重の権利保護を要求してるしさ。
641デフォルトの名無しさん:05/03/03 11:32:30
>>632-633
何故って、1スクリーンに収まらないからgdbが気を利かせてくれてるんでしょ?
642デフォルトの名無しさん:05/03/03 20:37:28
>>640
商取引の場合はベアリングに対してお金を払うわけでしょ。

ベアリングをただで贈呈する代わりに車を流通する際にはうちの方針に従ってもらう
それが嫌ならお金をいただきます。
↑は全然問題ないけど?

GPLライセンスが嫌なら自分でGPLに触れないように作ればいいだけのこと。
人の作ったもんをただで使うわ自分の好きなように使わせろだ
いやなクレーまーですね。
643デフォルトの名無しさん:05/03/05 14:33:51
>>642
正論
644デフォルトの名無しさん:05/03/05 16:51:54
VCだと、ライブラリをソース中で#pragmaで指定してリンクさせられたけど
gccでそういうことって可能ですか?

コマンドラインだと一々ライブラリを指定するのがかったるいし
make使うほどの規模じゃない…
645デフォルトの名無しさん:05/03/05 17:06:50
んなことを2chに書いてる暇があったらMakefile書け
646デフォルトの名無しさん:05/03/05 17:09:24
>>644
そこでautoconf/automake/libtoolですよ。
647デフォルトの名無しさん:05/03/05 17:50:19
それはない
648デフォルトの名無しさん:05/03/05 20:34:04
(´-`).。oO(GTK+/Qt 使うんだったら autotools は必須だけど、それ以外はどうでもいいや)
649デフォルトの名無しさん:05/03/05 21:16:02
>>641
それが、特にメッセージを表示してないのにそういう表示が出るんです。
>>633 の方法で抑制出来たのが謎ですが・・・。
650デフォルトの名無しさん:05/03/06 01:02:41
>>646
GNU Helloを見習ってgettextやtexinfoも使わんとな。
651デフォルトの名無しさん:05/03/07 21:46:37
autoconf/make化したもののファイルを新規追加/削除するたびに
Makefile.am 変更→automake && autoconf && configure && makeと
時間がかかるのが難点
652デフォルトの名無しさん:05/03/08 12:00:51
windows service for unixって、cygwinとはまたちがうんかね。
NFSやNISに対応とか書いてあるけどさ。
だれか使ってる?
653デフォルトの名無しさん:05/03/08 16:07:31
>>652
「ちがうんかね」って、そんくらいぐぐれ。
654デフォルトの名無しさん:05/03/08 23:08:10
はい。すみませんでした
655デフォルトの名無しさん:05/03/09 09:16:06
【CygwinGCC&VC7でのSJIS⇔EUC変換の比較テスト】
EUC⇔SJIS変換を行うプログラムで比較。
VC7用にはiconv.libをビルドしてスタティックリンクさせた。
iconvの比較対象として、自前のEUC⇔SJIS変換関数を使った。

【測定結果】
VC7:
sjis⇒euc iconv版 3.328[sec]
sjis⇒euc 自前版 0.703[sec]
euc⇒sjis iconv版 3.906[sec]
euc⇒sjis 自前版 0.531[sec]

CygwinGCC:
sjis⇒euc iconv版 16.656[sec]
sjis⇒euc 自力版 8.266[sec]
euc⇒sjis iconv版 16.797[sec]
euc⇒sjis 自力版 8.062[sec]

【結論】
Windows環境において、
SJIS⇔EUC変換のためだけにiconvライブラリを使うメリットは無い。
656デフォルトの名無しさん:05/03/09 09:16:54
【VC7でのUNICODE⇔EUC変換の比較テスト】
iconvを用いて一挙にUNICODE⇔EUC変換を行う場合と、
MultiByteToWideChar(),WideCharToMultiByte()と自前SJIS・EUC変換関数を使って
UNICODE⇔SJIS⇔EUC変換を行う場合を比較する。

【測定結果】
unicode⇒euc iconv版 2.625[sec]
unicode⇒sjis⇒euc 自作版 1.156[sec]
euc⇒unicode iconv版 1.704[sec]
euc⇒sjis⇒unicode 自作版 1.046[sec]

【結論】
Windows環境において、
UNICODE⇔SJIS⇔EUC変換のためだけにiconvライブラリを使うメリットは無い。
自力で2段階変換したほうが速い。
657デフォルトの名無しさん:05/03/09 20:53:08
何を今更
658デフォルトの名無しさん:05/03/11 01:05:38
>651
Makefile.am 変更しただけなら、automake hoge/Makefile → ./config.status hoge/Makefile → make
で良くない?
659デフォルトの名無しさん:05/03/20 05:18:29
アホな質問ですみません。
cygwin をインストールしたのですが、cygwin で Cソースファイル をコンパイル・リンクするには
どうすればいいのでしょうか?

\cygwin\bin を見ても、exe ファイルが多すぎてどれが何なのか分かりませんでした。
readme を探してみたのですが、いろいろなディレクトリに散らばっていて
どれから読めばいいのか分かりませんでした。
ググってみてもあまり期待通りの情報が得られませんでした。
とりあえず、思いついたことを一通り試しても分からなかったのでここに来ました。
どなたか宜しくお願いしますm(_ _)m
660デフォルトの名無しさん:05/03/20 05:22:49
cygwinとか以前の問題だろ
661659:05/03/20 05:31:00
>>660
すみません、cygwin が C コンパイラだと聞いてインストールしたのですが、
cygwin って一体何なのかが分からなくなってしまいました。
cygwin はどういうもので、Cソースをコンパイルするにはどうすればよろしいのでしょうか?
救いようも無いほどアホな質問ですが、このアホをどなたか助けてやって下さい。
よろしくお願いしますm(_ _)m
662とおりすがり:05/03/20 06:11:00
cygwinはwindows上でGNUツールを動かしてしまおうというもの。
強いて言えば環境に相当する。cygwin で C 言語プログラムを
コンパイルするには GCCという C コンパイラ(GNU ツール)を使う。
インストールされていればシェルから gcc --version と入力したら
バージョン番号を表示するはず。
インストール方法や使い方は cygwin サイトを見るか cygwin gcc を
キーワードにしてぐぐってぐぐってぐぐりまくれ。
663659:05/03/20 06:28:47
>>662
ありがとうございます。

cygwin をインストールしても gcc などが使えなかったので、
(スレタイを読んで)試しに mingwn をインストールしたら gcc などが使えるようになりました。

今度は g++ についての質問です。
とりあえず HelloWorld を作ったのですが、

#include <iostream>

int main(int argc, char** argv)
{
cout << "Hello, world!" << endl;
return 0;
}

を g++ でコンパイルすると、

hello_iostream.cc: In function `int main(int, char**)':
hello_iostream.cc:6: error: `cout' undeclared (first use this function)
hello_iostream.cc:6: error: (Each undeclared identifier is reported only once
for each function it appears in.)
hello_iostream.cc:6: error: `endl' undeclared (first use this function)

というエラーメッセージが表示されてしまいました。
cout や endl は iostream をインクルードすれば使えると思ったのですが、
どうすれば cout や endl が使えるようになるのでしょうか。
たびたびすみませんが、宜しくお願い致しますm(_ _)m
664デフォルトの名無しさん:05/03/20 07:10:18
>>663
std::cout std::endl
C++の質問はC++スレで。
665663:05/03/20 07:16:11
>>664
すみません、スレ違いなのに答えてくださってありがとうございましたm(_ _)m
666デフォルトの名無しさん:05/03/20 08:39:30
とりあえず後10年は掲示板で質問するな。
667デフォルトの名無しさん:05/03/20 13:56:56
10年ってw
……と思ったけど、もれもプルグルムやり始めてから
7〜8年経って、こういう掲示板が現れたんだよな。

とりあえず標準で5年、ちと不器用なヤシは10年、
これが相場かな。
668デフォルトの名無しさん:2005/03/24(木) 16:21:04
gcc -Lライブラリパス
この-Lライブラリパスを指定しなくてもデフォルトで検索してほしい場合
どのファイルにこのオプションを書き込めばいいんですか

669デフォルトの名無しさん:2005/03/24(木) 16:46:28
specs
670デフォルトの名無しさん:2005/03/24(木) 18:03:51
specsにどういう書式で書けばいいんでしょうか
671デフォルトの名無しさん:2005/03/24(木) 18:18:50
ちったぁ自分で調べてみようとは思わないのだろうか?
gcc+specs+ライブラリ+パス での検索結果は 617 あって、
その中にはかなりヒントになりそうなものもあるわけだが。
672デフォルトの名無しさん:2005/03/30(水) 04:19:00
cygwin使ってるんですが、
gccでコンパイルして出たコンパイルエラーが文字化けします。
ファイル名とか識別子などは化けないのに、
エラー文らしきものは全て化けます。
日本語(多バイト文字)で表示されてる事は無いと思うんですけど、何故だろう...
673デフォルトの名無しさん:2005/03/30(水) 05:28:32
>>672
環境変数LANGはどうなってる?
674デフォルトの名無しさん:2005/03/30(水) 05:39:32
cygwinだろ?
メッセージがEUC-JPだけどコンソールはSJISしか理解しないので
文字化けしている、に10ペセタ。
675デフォルトの名無しさん:2005/03/30(水) 06:19:54
>>673 >>674
Thanks!
LANG=enにしたら、化け直った。
最近使い始めたばかりなので、難しい。
676デフォルトの名無しさん:2005/03/30(水) 16:11:01
>>671
環境変数LIBRARY_PATHにパスを設定するだけでよかったようです
結局specsってなんだったんですか??

677デフォルトの名無しさん:2005/03/30(水) 19:30:51
Structure って名前の構造体を作った。

Structure s;
fwrite(&s, sizeof(Structure), 1, fp);

こんな風にして構造体のメモリ上での表現をそのまま
バイナリファイルにぶちまけた。

cygwin と Linux x86 で同じプログラム動かしてみたんだけど、
出力されたファイルをバイナリエディタで見てみると
メンバの順番が違う。

どっちも gcc だしプロセッサも同じインテル系だし
同じになるかと思ったんだけどなぁ…
678デフォルトの名無しさん:2005/03/30(水) 19:51:47
そんな横着せんでちゃんとシリアライズせーよ
679デフォルトの名無しさん:2005/03/30(水) 20:10:35
>>677
その手はタブー。コンパイルオプション変えるだけで
通用しないかもしれないよ。
678の言うようにがんがってシリアライズしる。
680デフォルトの名無しさん:2005/03/31(木) 01:03:15
つ__attribute__((packed))
詰め物は適当に。
681デフォルトの名無しさん:2005/03/31(木) 09:13:50
やっぱシリアライズしないとだめか……

実はこの構造体のどでかい配列を作ってシミュレーションとかしてて、
その途中経過つーかスナップショットをファイルにはき出した。
で、学校から家に持って帰ってきて続きのシミュレーションを
cygwin 上でやろうと思ったら値がめちゃめちゃに(笑
682デフォルトの名無しさん:2005/03/31(木) 09:20:14
>>681
自宅にも同じLinuxを入れるか、学校でもCygwin使え。

どうでもいいが、gdbmのdbも同じ理由で全く互換性がないんだよね。復元するのが面倒でw
683デフォルトの名無しさん:2005/03/31(木) 21:49:32
アラインメントを意識して配置すれば大抵は大丈夫だけどな
684デフォルトの名無しさん:皇紀2665/04/01(金) 06:37:17
アラインメントが狂うとかじゃなくて、構造体の順番が変わるとかあり得る?
あるいはクラスメンバの順番が変わるとか。
685デフォルトの名無しさん:皇紀2665/04/01(金) 07:53:45
十分あり得る
686デフォルトの名無しさん:皇紀2665/04/01(金) 13:21:45
構造体は、少なくともCにおいては
メンバが順番に並んでいることが保証されている。

が、C++では保証されていないかも。
常識的に考えればPODな構造体は保証されそうなものだけど、
継承や仮想関数があるものは、メンバの並びについて仮定してはいけないはず。
687デフォルトの名無しさん:皇紀2665/04/01(金) 18:34:09
メンバの数だけfread, fwriteすればいいだけだろ。
typedef struct{
int chinko[100];
int tanshou[1];
int otona[200];
}OGERETSU;

void fwrt(FILE *fp, OGERETSU *ogrt)
{
fwrite(&ogrt->chinko, sizeof(ogrt->chinko), 1, fp);
・・・・
}
688デフォルトの名無しさん:int 2ch =05/04/01(金) 21:17:24
字がうまいな
689デフォルトの名無しさん:int 2ch =05/04/01(金) 22:37:33
>>686
継承されたものは、継承された順番に並んでいるし、
仮想関数があろうとメンバの並びには影響しない。仮想関数のポインタテーブルも含めて。
690デフォルトの名無しさん:int 2ch =05/04/01(金) 23:06:54
「実装がこうだ」ではなく
「規格で保証されている」かが問題なのだが。

virtual継承って聞いたことあるかい?
691デフォルトの名無しさん:int 2ch =05/04/01(金) 23:25:47
いないな、識別子の先頭に2はいかんやろ。
692デフォルトの名無しさん:int 2ch =05/04/02(土) 08:28:51
実際問題として、両方86環境でCygwinとLinuxっていうんならパッディングの問題か
構造体の中で使ってる型が環境ごとに違うとかじゃないか?
エンディアンは関係ないだろうし。
693デフォルトの名無しさん:int 2ch =05/04/02(土) 12:39:44
>>677
ちょっと興味あるんで、
具体的に構造体の中身教えておくれ
694デフォルトの名無しさん:int 2ch =05/04/02(土) 13:27:36
>>693
>677じゃないけど、>682の言ってるgdbmの構造はLinuxでもリビジョンの違いでアライメントが変わる。
695デフォルトの名無しさん:int 2ch =5年,2005/04/02(土) 17:04:33
>>694
それは単にバージョン毎で構造体定義自体が変わったって話じゃ
696デフォルトの名無しさん:2005/04/02(土) 18:31:50
>>695
Linuxのリビジョンだな。
697デフォルトの名無しさん:2005/04/03(日) 01:00:09
でぃすとりのリビジョンが変わったらカーネル(とヘッダ)や
gccのバージョンが変わって当たり前なので不思議は無いな。
698デフォルトの名無しさん:2005/04/03(日) 09:43:14
最近perlを勉強しはじめました。
ttp://www.activestate.com/activeperl/
でwin用のperlを落とし、cygwinからプログラムを実行するところまでは出来て
実行するとき $perl aaa.txt とやっています。
手元にある本だと、予め「#! /perlのフルパス」をソースに組み込んでおけば
$perl aaa.txt のperlを削れると載っていました。
また、win用のperlでは、「#!」が使えないとも書いてありました。
cygwinで実行する場合も、「#!」は使えないのでしょうか?
自分でも試しましたが、やはり実行できずにいます。
699デフォルトの名無しさん:2005/04/03(日) 10:43:34
\#!
700デフォルトの名無しさん:2005/04/03(日) 10:47:55
>>698
active perlを使ってるならcygwinのperlを使えばいい。
setup.exeのinterpreters→perl
701デフォルトの名無しさん:2005/04/03(日) 10:51:18
C:\Perl に ActiveState perlが入っている状態で、できたけどな。

$ cat execactivestateperl
#!/cygdrive/c/Perl/bin/perl.exe

print "Hello!\n";

$ ./execactivestateperl
Hello!
702デフォルトの名無しさん:2005/04/03(日) 11:49:21
>>698
コマンドラインで直接スクリプトファイル名だけ入力して起動したいなら、
ファイルに実行ビットを立てるのとそのファイルの置いてあるディレクトリをパスに追加するのを忘れずに。
#って、この説明の意味が判らないならUnix操作の基礎の基礎を勉強するか諦めろ。
703698:2005/04/03(日) 16:55:57
>>699-702
レスありがとうございます。
type -a perl でパスを確認し
/bin/perl
/usr/bin/perl
/cygdrive/c/Perl/bin/perl
の3行が表示されました。
先頭に#!をつけてそれぞれ試してみました。(\#!も)
しかし、chmod a+x aaa.txt (chmod a+xは本に載ってました)と入力し
その後 aaa.txt と入力すると bash: aaa.txt: command not found と言われ
何も起きません。
ファイル実行の命令自体が出来てないような感じがするのですが
解る方いないでしょうか?

ちなみに cat execactivestateperl を入力すると
cat: exe〜:No such file or directory と言われてしまいました。
704デフォルトの名無しさん:2005/04/03(日) 17:12:11
./aaa.txtとか?
705702:2005/04/03(日) 18:41:34
>>703
だからさ、Unixの基礎の基礎を勉強してこいってば。
706デフォルトの名無しさん:2005/04/03(日) 19:10:45
Unixコマンドの基礎だな。
7071:2005/04/06(水) 14:09:18
>>62
>>570
>>571
>>588
>>590
……………ごめん。
708デフォルトの名無しさん:2005/04/06(水) 14:46:14
>>707
いや、590には謝る必要ない。
709デフォルトの名無しさん:2005/04/08(金) 19:02:56 BE:134971687-#
ソースコードの中で cygwin 環境下でコンパイルされているのかどうか、
さらに -mno-cygwin オプションがつけられていて mingw 用にコンパイル
されているのかどうかを調べることはできませんか?

何かマクロが定義されているならプリプロセッサで#ifdefできてウレシい。
710デフォルトの名無しさん:2005/04/08(金) 19:23:15
>>709
Cygwin-gcc-3.3.3でCygwinの判定に使えそうなマクロ
-#define __CYGWIN__ 1
-#define __CYGWIN32__ 1

Cygwin-gcc-3.3.3で-mno-cygwinしたときに増えるマクロ
+#define _WIN32 1
+#define __MSVCRT__ 1
+#define __WIN32 1
+#define __MINGW32__ 1
+#define WIN32 1
+#define __WIN32__ 1
+#define WINNT 1

711デフォルトの名無しさん:2005/04/08(金) 19:57:38
>>710
こういうのってどうやって調べるんですか。
712デフォルトの名無しさん:2005/04/08(金) 20:34:43
>>711
$ echo "" | gcc -E -dM -

何かもっと短い書き方があったはずだけど…これか。

gcc -E -dM -x c /dev/null
gcc -E -dM -x c++ /dev/null

でzshだとこんなことが。
$ diff -ubwB =(gcc -E -dM -x c /dev/null) =(gcc -E -dM -x c++ /dev/null) | grep -E '^[+-][^+-]'
+#define __EXCEPTIONS 1
+#define __GXX_WEAK__ 1
+#define __WCHAR_UNSIGNED__ 1
+#define __cplusplus 1
+#define __DEPRECATED 1
+#define __GNUG__ 3

713デフォルトの名無しさん:2005/04/09(土) 06:58:51 BE:28923326-#
>>712 zshだと、の後、何書いてんだかさっぱりわかんない(笑
714デフォルトの名無しさん:2005/04/09(土) 09:27:59
=(〜) ってのは無名テンポラリファイルだと思いねえ。
gcc うんたら > tmp1
gcc うんたら > tmp2
diff -ubwB tmp1 tmp2 | (ry
みたいなもんだ。

UNIXだと<(〜)を使えばパイプを使うんで作業ファイルを作らなくてすむけど、
cygwinでは=(〜)しか使えないんかな? /dev/fd/*がなさそうだからそのせいか?

zshには出力ファイルへの出力を別プロセスに通す >(〜) なんてものある。
あまり使いどころがないけど。
715711:2005/04/10(日) 22:30:45
>>712
さんくす。
716デフォルトの名無しさん:2005/04/16(土) 11:24:11
717デフォルトの名無しさん:2005/04/23(土) 06:05:01
久しぶりにCygwinをアップデートしようと、Cygwinのページみてみたら、アイコンが変わっているようです。これって、ダウンロードして大丈夫でしょうか?
718デフォルトの名無しさん:2005/04/23(土) 08:30:07 BE:43383492-#
カバになってるんだろ。大丈夫。
719デフォルトの名無しさん:2005/04/29(金) 03:32:05
cygwin 1.5.16-1 を入れて g++ でコンパイルしようとしたら

 C:\cygwin\lib\gcc-lib\i686-pc-cygwin\3.3.3\cc1plus.exe (2756): *** cygheap base
 mismatch detected - 0x61810000/0x61800000.
 This problem is probably due to using incompatible versions of the cygwin DLL.
 Search for cygwin1.dll using the Windows Start->Find/Search facility
 and delete all but the most recent version. The most recent version *should*
 reside in x:\cygwin\bin, where 'x' is the drive on which you have
 installed the cygwin distribution. Rebooting is also suggested if you
 are unable to find another cygwin DLL.

と言われるようになっちまった…

1つ前の 1.5.15-1 ならうまく動いてたんだけどな。
720デフォルトの名無しさん:2005/04/29(金) 10:20:08
えらく懇切丁寧なエラーメッセージなのな(;´Д`)
721デフォルトの名無しさん:2005/04/29(金) 10:36:10
>>719
読め。そして理解しろ。
722デフォルトの名無しさん:2005/04/29(金) 22:07:31
なんなの?つまりdllの名前が変わったってこと?
それともインストールされるフォルダ変えちゃったってこと?
723デフォルトの名無しさん:2005/04/30(土) 13:46:32
Windows ディレクトリとか System ディレクトリとか、PATH が通ってるところに古い cygwin1.dll が入ってるんだろ、きっと。
724719:2005/04/30(土) 14:21:30
>>723さんの言う通りでした。

自分の場合はカレントディレクトリに置いてあった(PATHに . も入ってる)。
コンパイル済みのexeと一緒にcygwin1.dllも配る時のために…
# cygwinインスコしてない人用に
725デフォルトの名無しさん:2005/04/30(土) 14:28:32
>1つ前の 1.5.15-1 ならうまく動いてたんだけどな。
おいおい、自分のミスは棚に上げてcygwinの所為かよ。
726デフォルトの名無しさん:2005/05/06(金) 20:31:09
組み込み系のCPUで、GNU-C or C++を使ってプログラムすることになったのですが、
OSを載せないため、bootコードを書くことになりました。
(cygwinはクロス環境として使います)
アセンブラやハードの知識、基本的なC,C++に関してはわかっているつもりなのですが、
bootコードにハードウェア初期化以外に何を書けばいいのかわかりません。

とりあえず.bss領域はゼロクリアすればいいことまではわかったのですが、
C++のコンストラクタ実行やライブラリの初期化等、main()まで行くまでに
何をすればいいのか、どこかに良書や資料ありませんか?

今日一日ググったり本屋行ったのですが、どこにもなく・・・どなたか助けてください。
727デフォルトの名無しさん:2005/05/06(金) 21:02:56
>>726
「エスパーきぼんぬ」をググるといいかと。
728デフォルトの名無しさん:2005/05/06(金) 22:38:17
>>726
いわゆるスタートアップルーチンだよね?
やらなくてはいけないことはマイコンにもよるけど、
スタック設定
割り込みベクタ設定
ROMエリア初期化
DATAエリア初期化
BSSクリア
main呼び出し
でそ
ちなみにBSSクリアは必須ではない(不定になるけど)
729デフォルトの名無しさん:2005/05/06(金) 23:27:54
>>726
適当なアーキのcrt.oでも読んだらどうかな?あとGCCのinfo。
730デフォルトの名無しさん:2005/05/06(金) 23:33:44
>>728
726が聞きたいのは例えばatexitとか、構造化例外処理とかの
色々な準備(C/C++のライブラリ初期化手順)の希ガス。
731730:2005/05/06(金) 23:44:58
最低限でmallocやnewもいらんというなら、728のやり方で
自分のことだけ考えてればそれでもよいが。
732デフォルトの名無しさん:2005/05/06(金) 23:48:27
>>726
環境構築のために必要なコード(ブートローダ)と、そのプログラム実行のために必要なコード(スタータップルーチン)は区別しておけよ。
仮令OSがないとしても、前者と後者を分けておくことはデバッガ(もしくはモニタ)を作るときにも役に立つ。
733726:2005/05/07(土) 00:34:18
みなさん。ありがとうございます。

>>728
 C言語で標準ライブラリ等無しなら、それで行けるはずですよね。
 確認できて良かったです。
 ところで「ROMエリア初期化」と「DATAエリア初期化」というのは何でしょう?
 .textと.data(だったっけかな?)に何らかの初期化が必要という事でしょうか?

>>729
 crt.oというとオブジェクトファイルですよね。
 crt.o自体の役目を知らないのですが、これは何でしょう?
 GCCのinfoにはもう一度目を通してみます。

>>730
 いや、まさにそのとうりでございます・・・
 mallocやnewのメモリ動的割付に関しては今回は見送る(禁止)
 させる予定ですが、全般的にはそのような事です。

>>732
 アドバイスありがとうございます。
 というと、私がわからないのはスタートアップルーチンという事に
 なるのでしょうか。
 728さんが書いてくれた割り込みハンドラの初期化などHWに近い部分は
 何をするかわかっているので。
 ※ちなみに今回はICメモリにプログラムがすでに展開されているため
  ブートローダは書かなくて済みます。
734726:2005/05/07(土) 00:34:45
書いていて整理がついてきました。私がわからないのは
1. .ctors .dtorsセクションにあるコンストラクタ、デストラクタを
  スタートアップルーチンでどう処理すればよいのか。
2. その他気をつけるべきセクションはあるのか。
3. ライブラリの初期化は何かルールがあるのか。
という事です。
735デフォルトの名無しさん:2005/05/07(土) 01:00:04
>>734
そのあたりはアーキテクチャにそれほど依存しないだろうから、既存のものを参考にしてみれば
736デフォルトの名無しさん:2005/05/07(土) 01:14:57
>>730
あーそういうことでしたか・・・
的外れでしたね、すみません

>>733
ROMエリア初期化ってのは変だね。勢いだけで書いてしまったよ
ごめんなさい。

DATAエリア初期化ってのは、まさに.dataセクションの初期化で、
グローバル変数やらstaticな変数の初期値代入です。
といっても、ROMセクション(.rodataとか)から.dataへのコピーを
するだけですが
適当なcrt.sを読むのが一番の解決方法かと
737730:2005/05/07(土) 02:28:25
>>726
何か(汎用)のCまたはC++標準ライブラリを組み込むつもりがあるのか
分かりませんが、malloc禁止ということからすると既にチームの方針
として標準ライブラリは諦めているのではないかとも思えます。

734の問題ですが、やはりgcc特有の事柄についてドキュメントを
探し回るしかなさそうですね。私も興味があったので少しググッて
みたところ次のページの「.init および .fini セクション」がヒントを
与えてくれそうです。

http://www.globe.to/~oka326/archive/elf_doc_sgml_ja/elf_doc.html

最終的にはソースコードに辿り付くというオチですみませんが。
738デフォルトの名無しさん:2005/05/07(土) 07:20:34
つか組み込みでOS無しでboot書くとかそんなレベルなら、
当然ldscriptまで自分で書いてアドレスとかセクションとか管理しなきゃ
やってられんだろ。

となればおのずと.initとか.ctorとかの各セクションの意味とかもわかってなきゃ
いけないと思うのだが、>>726はそんなレベルで大丈夫なのか?

>>737のリンク先、linker&loader (http://pc8.2ch.net/test/read.cgi/tech/1033403294/)
あとは各種unixのcrt0のソースでも嫁
739730:2005/05/07(土) 14:22:18
>>738
きっと大丈夫でしょう。726は自分が何を知っていて、何を知らない
のかをキチンと把握していますから、着実に目的に近づいて
いくのではないでしょうか。

>linker&loader

Linkers & Loaders ( http://www.iecc.com/linker/ )の邦訳ですね。
他で扱わない内容でよい本だと思いますが各種実行ファイルの
形式とか再配置とか動的リンクとか今回の目的には余分な情報が
多いかも知れません。
726さんは少なくとも組み込みソフトの基本的な知識は持ち合わせて
いるようなので、足りないのはこの本よりは、より実践的なgccやld
などのツールの使いこなし方、じゃないかな。

ld の解説で適当な日本語のサイトが見つからなかった。
http://www.big.or.jp/~mio/it-old/lx_old/lxref/lx_ref_ld_1j.txt
リンカスクリプトの詳細は本家じゃなきゃ駄目?
http://www.gnu.org/software/binutils/manual/ld-2.9.1/ld.html
http://www.gnu.org/software/binutils/manual/



# 関係ないけど Snapshot: MinGW-4.0.1.exe が出てますね。
740デフォルトの名無しさん:2005/05/07(土) 16:14:02
>>726

まるで数ヶ月前の自分を見ているようです。
某 SH マイコン系から ARM 系に移るのに 処理系は GCC を選択。
私は MinGW クロスgcc に IDE がついた処理系を会社で買ってもらって
そいつが吐き出す GNU ld のリンクスクリプトを見て独力でいろいろ覚えました。
イギリスのRowleyってとこで CrossWorks for ARM ってのが売っています。
http://www.rowley.co.uk/arm/index.htm
495ポンド。日本円にすると9万8千円ってとこ。1ヶ月くらい試用も出来ます。
全部覚えてからは CQ出版インターフェース系のバックナンバをそろえて
Cygwin + GCC + newlib 環境に移動。こういう方法もあるってことで。
741デフォルトの名無しさん:2005/05/07(土) 16:28:06
MinGW4.0.1出たけど、入れるかどうしようか迷ってる。
安定版を待つまでもないかな。
742デフォルトの名無しさん:2005/05/07(土) 18:58:07
>>739
> ld の解説で適当な日本語のサイトが見つからなかった。
http://www.sra.co.jp/wingnut/technical-info.html
SRAのサイト(http://www.sra.co.jp/wingnut/)は
よく利用させてもらってます。
743デフォルトの名無しさん:2005/05/07(土) 19:02:33
>741 オラは本家のほうが4.0.xになるまで様子見だべ。
744726:2005/05/07(土) 23:30:31
うおぉぉぉ。みなさんありがとうございます。感動です。
それにしても、情報見つけるのがみなさん上手ですね・・・orz

>>728
 なるほど。.dataセクションは、組み込み系では使わないとか思っていたのですが、
 そうではなく、.rodataからコピーするんですね。
 これには気づきませんでした。

>>730
 貴重な情報ありがとうございます。これはかなり役に立ちそうです。プリントアウトして読んでみます。
 さらっと読んでみましたが、.init重要そうですね。

>>738
 これまた誘導ありがとうございます。「Linkers & Loders」という本は見てみる価値ありそうですね。
 DLL関係は確かに必要ないのですが、本の前半が気になるので買ってみようかと思います。

>>740
 インターフェース系のバックナンバーは会社にそろっているはずですので、確認してみます。
 特に「これイイ!」という記事があったら教えていただけますと助かります。

>>742
  貴重なURLありがとうございました。
  こ、これは・・・という感じです。
745デフォルトの名無しさん:2005/05/08(日) 06:53:39
>>744

>インターフェース系のバックナンバーは会社にそろっているはずですので、確認してみます。
>特に「これイイ!」という記事があったら教えていただけますと助かります。

2005/1月号
特集 フリー・ソフトウェア活用組み込みプログラミング
http://www.cqpub.co.jp/interface/contents/2005/200501.htm

746デフォルトの名無しさん:2005/05/10(火) 02:30:29
さんざんフリーソフトの幅広いチョイスで頭を悩ましてから、やっと決心して
昨日MinGWをインストールした。

これから頑張ってC++の勉強をするぞー
747デフォルトの名無しさん:2005/05/10(火) 09:09:10
プロセス間でデータをやりとりするにはどうしたらよいのでしょうか?
748デフォルトの名無しさん:2005/05/10(火) 10:33:07
>>747
データ量と速度とタイミング、後は両者の関係がわからんとなんとも。
pipeでことが足りるならスクリプトでも書けばいい話だし。
749デフォルトの名無しさん:2005/05/11(水) 00:39:14
基本はファイルでやりとりかとおもふ。低速だけど
750デフォルトの名無しさん:2005/05/11(水) 01:05:52
やっぱり C O M でしょ。
751デフォルトの名無しさん:2005/05/11(水) 01:20:03
ファイルだなんて、一体どこの世界の基本だよ
752デフォルトの名無しさん:2005/05/11(水) 03:12:49
Unixならよくある話だ。
753デフォルトの名無しさん:2005/05/11(水) 04:15:58
例えば? まあ747がどういうシチュエーションなのか書かんとしょうがないけど。

754デフォルトの名無しさん:2005/05/11(水) 21:25:34
cygwinを使ってるんですが、以下のように文字化けします。
↓はrm --helpを実行した時の文字化けの一部分です。

-v, --verbose explain what is being done
--help 、ウ、ホサネ、、ハ�、スシィ、キ、ニスェホサ
--version ・ミ。シ・ク・逾スシィ、キ、ニスェホサ

`-' 、ヌサマ、゙、・セチー、ホ・ユ・。・、・・・・ケ、・ヒ、マ。「ホ网ィ、ミ `-foo' 、ネ、、、ヲ・ユ・。・、・・ハ、
、ウ、ヲ、、、ヲ・ウ・゙・ノ、ネ、、、゙、キ、遉ヲ
rm -- -foo

rm ./-foo

他にもgccでコンパイルする時もエラーメッセージが文字化けする事があります。
cygwinを入れたときからずっとこの症状が続いてるんですが、原因は何でしょうか?
755デフォルトの名無しさん:2005/05/11(水) 21:36:38
EUC
756デフォルトの名無しさん:2005/05/11(水) 21:51:57
環境変数 LANG
757754:2005/05/11(水) 22:18:08
moconv.sh とやらを実行したら日本語で正常に表示されるようになりました。
758デフォルトの名無しさん:2005/05/13(金) 02:06:41
rxvtに変えたらRunMW32でMeadowが起動しなくなりました。
command not foundと表示されてしまいます。
コマンドプロンプトだと上手く行きます。
どうすればrxvt上でもMeadowが起動できるようになるんでしょうか?
alias使っても.emacsのロードに失敗とか、
cygwinのhomeに何故かkazと言うディレクトリが作られてしまいます。
759デフォルトの名無しさん:2005/05/13(金) 03:04:13
>>758
オマエなんかに釣られてたまるか!
760デフォルトの名無しさん:2005/05/16(月) 16:48:05
MinGWってJavaよりも遅いの? 例えば、下の二つのプログラムをIBMのThinkPadT40
上で走らせると、Javaは0.45秒で走るのに、MinGWは2.5秒もかかる。
他にもいろいろやってみたけど、大抵MinGWのほうが2倍以上時間がかかるんだけど。

import java.util.Date;
#include <stdio.h>
#include <time.h>

int main(int argc, char **argv) {
register double s1,k;
clock_t start,end;
double elapsed;
k = 10.;
int i;
long j;
start = clock ();
for (i = 0; i < 10000000; i++){
s1 = log(k);
}
end = clock ();
elapsed = ((double)(end-start))/ CLOCKS_PER_SEC;
printf ("Time it took = %f s \n",elapsed);
return (0);
}
761760つづき:2005/05/16(月) 16:49:09
#include <stdio.h>
#include <time.h>

int main(int argc, char **argv) {
register double s1,k;
clock_t start,end;
double elapsed;
k = 10.;
int i;
long j;
start = clock ();
for (i = 0; i < 10000000; i++){
s1 = log(k);
}
end = clock ();
elapsed = ((double)(end-start))/ CLOCKS_PER_SEC;
printf ("Time it took = %f s \n",elapsed);
return (0);
}
762デフォルトの名無しさん:2005/05/16(月) 16:56:18
>>760
最適化してはる?
763デフォルトの名無しさん:2005/05/16(月) 19:46:51
>>760
register doubleはやめとけ。
それと、for文の中身だが、s1に結果を代入しているだけで、後は捨てて
いるので、Javaの方は最適化で実行してない可能性がある。

アセンブリ出力を出して見てみ。
764デフォルトの名無しさん:2005/05/16(月) 20:22:37
MinGWじゃなくclやCygwinだとどうなる?ある種の最適化はJITの方が得意なんで
ネイティブよりJavaの方が早いこともある。
765デフォルトの名無しさん:2005/05/16(月) 23:47:28
最適化が一番効いてくるのはループだしな
766デフォルトの名無しさん:2005/05/17(火) 05:12:35
またJava厨か。
767760:2005/05/17(火) 06:38:02
>>766
Java厨じゃないよ。単純に、自分の書いたJavaのプログラムの方がgccよりも
早かったから、びっくりしただけ。

>>762
最適化してみたけど、全然変わらなかった。こんな単純なコードじゃ、最適化
の意味が無いのでは。

あと、ループの中身を、k *= .9999999;に変えて1,000,000,000回まわしてやった
結果、MinGW7.84秒、Java7.83秒とほぼ同じ結果になった。

>>763 
register doubleはこの場合あっても無くても影響なしでした。
(別のプログラムでは、10倍以上スピードアップしたが)。
あと、面白いのは、MinGWで、doubleの代わりにfloatを使ったら、16.87秒と、
時間が倍以上に伸びた。

単純な掛け算ではほぼ同じスピードってことは、logとかsqrtとかの
アルゴリズムが、Javaの方が良いということかな。

あと、ループの実行速度が殆ど変わらないということは、Javaもループとかは
ランタイムにコンパイルしながら実行してるってこと?でしょうね。

>>764
Cygwinはインストールしてないので試してません。
768デフォルトの名無しさん:2005/05/17(火) 07:40:48
>>760
VCToolKitで試してみたら最適化オプション無しで0.35秒
O2付けた計測できなかった
769デフォルトの名無しさん:2005/05/17(火) 08:07:15
>>767
逆。単純で何もやってないからこそ最適化かけやすい。
logの意味まで解析できれば>>763がいうように次のように最適化できるから
JITのほうが有利かもしれんし。
#include <stdio.h>
#include <time.h>

int main(int argc, char **argv) {
clock_t start,end;
double elapsed;
long j;
start = clock ();
end = clock ();
elapsed = ((double)(end-start))/ CLOCKS_PER_SEC;
printf ("Time it took = %f s \n",elapsed);
return (0);
}
doubleとfloatの話は単精度と倍精度と80bitのフォーマット変換コストかも。
つうか、どっかで実行コストと最適化についてざっと調べろ。
770デフォルトの名無しさん:2005/05/17(火) 10:09:03
はいはい。大抵JavaがCより速いってことでFA。
Cなんかよりずっと速いJavaを使ってくれ。
771デフォルトの名無しさん:2005/05/17(火) 23:20:25
どなたか下の宿題解いてくださいませんか??なんかもうさっぱりです。
今年こそは単位とりたいのですが自力でできる気がしないんです…

ダミー節点を使わないリスト構造を用いて,挿入整列の
プログラムを作成せよ
・リスト構造は,ポインタによるリンクリストを用いること
・整列前のリスト内の各要素,整列後のリスト内の各要素を
 表示するようにすること


772デフォルトの名無しさん:2005/05/17(火) 23:34:13
とりあえず、スレ違い。
773デフォルトの名無しさん:2005/05/17(火) 23:36:19
それ承知で書き込みました、ほんとに追い詰められてるんですTT
どうか良心的な方お願いします。
774デフォルトの名無しさん:2005/05/17(火) 23:58:16
なんだ良心的って。良心的かどうかという問題じゃないだろ。
プログラミングだけじゃなくて日本語もダメみたいだな。
スレ違いなんだから諦めれ。
775デフォルトの名無しさん:2005/05/18(水) 00:23:23
わかりました、すみませんでしたm(__)m
776デフォルトの名無しさん:2005/05/18(水) 00:25:50
>>767
floatで速度が遅くなるのは当たり前。
doubleへの昇格の話はC言語の仕様の基礎だぞ。
777デフォルトの名無しさん:2005/05/18(水) 01:08:07
>>776
お前まだANSI C以前の古いCの話してんのか。
778760:2005/05/18(水) 02:34:12
>>769
-Xintオプションをつかって、JITコンパイラーを回避したら、Javaの実行時間
が約8倍長くなりました。

779デフォルトの名無しさん:2005/05/18(水) 09:54:55
>>777
floatで遅くなったのは定数がdoubleだから格上げが起きているため。
それはcommonCでもC89でも同じこと。
C89ならfloat定数でdouble格上げを回避できるかもしれないだけの話。
780デフォルトの名無しさん:2005/05/18(水) 17:31:02
>>779
そりゃ、log()のプロトタイプがdoubleを引数に取ってたら仕方ない罠。
log(float)の需要が低いので、作らなかったか、古いCに仕様を合わせたかの
どちらかだろう。
781デフォルトの名無しさん:2005/05/18(水) 18:04:17
>>780
遅くなったのは乗算の方だと思うのだが。
782デフォルトの名無しさん:2005/05/18(水) 23:50:25
floatからdoubleに変換してから計算した結果をfloatに変換
783デフォルトの名無しさん:2005/05/19(木) 00:31:06
>>781
CPU依存だけど x86 では float でも double でも 80bit で演算しますが。
CPU 内の演算を 32/64/80bit のどれでやるかはステート変更命令でコントロール可能。
_controlfp を調べてくれ。

FPUの精度を弄らないんなら、float の利点はサイズが半分でキャッシュ効率が倍になることしかない。
C言語だと double 昇格で足を引っ張られることが多いので double が無難。
784デフォルトの名無しさん:2005/05/19(木) 00:39:37
結局Cは未だにPDP-11の遺影をひきずっているという事っすね・・・・。
785779=781:2005/05/19(木) 03:18:31
>>783
時間測定したのは漏れじゃない。漏れはfloatなんて一切使わないしね。
786デフォルトの名無しさん:2005/05/19(木) 11:54:43
オブジェクトを生成しない単純なコードだけ見せてJavaはCより速いんだって
言っても釣りにしか聞こえない。
787デフォルトの名無しさん:2005/05/19(木) 18:27:17
コンパイルまではうまくいくんですが実行しようとすると
Segmentation fault(core dumped)と表示されて失敗します。
原因は何でしょうか?
788デフォルトの名無しさん:2005/05/19(木) 18:33:37
>>787
gdbでbtしる!
789デフォルトの名無しさん:2005/05/19(木) 22:11:26
>>788
ほんとごめんなさい、2ちゃんはじめたばっかで用語に疎いので
解読できません。できれば標準語で書いていただけませんか?
790デフォルトの名無しさん:2005/05/19(木) 22:12:43
>>789
【初心者歓迎】C/C++室 Ver.17【環境依存OK】
http://pc8.2ch.net/test/read.cgi/tech/1115958601/
791デフォルトの名無しさん:2005/05/19(木) 22:17:16
>>790
わかりました
792デフォルトの名無しさん:2005/05/20(金) 18:53:16
なんか、マルチスレッドのプログラムをコンパイルしたら
gcc: unrecognized option "-pthread"
と怒られるのですが、どうすればいいですか?
超既出だったら、ごめんなさい
793デフォルトの名無しさん:2005/05/20(金) 18:58:48
-lpthread
794792:2005/05/20(金) 19:06:19
ありがとうございます。見事にうまくいきました
そいえばFreeBSDで-lphreadでエラーがでて-pthreadに変えたことを忘れてた・・・orz
795792:2005/05/20(金) 20:55:21
どうも、また壁にぶち当たりましたorz
ソケットのselectがおかしな挙動します・・・
非ブロッキング型の通信プログラムを組んでいるんですが

FD_ZERO(&readmask);
FD_SET(sock,&readmask);
FD_SET(0,&readmask);
while(1){
timeout.tv_sec = 10;
timeout.tv_usec = 0;
if(select(max_fd,&readmask,NULL,NULL,&timeout) != 0){
if(FD_ISSET(0,&readmask)){
〜〜
if(FD_ISSET(sock,&readmask)){
〜〜
このときにconnectしたりしても反応がありません。
FreeBSDではうまくいったんですが・・・(´д`;)
796752:2005/05/20(金) 20:56:50
とりあえずタブが表示されない件

FD_ZERO(&readmask);
FD_SET(sock,&readmask);
FD_SET(0,&readmask);
while(1){
  timeout.tv_sec = 10;
  timeout.tv_usec = 0;
  if(select(max_fd,&readmask,NULL,NULL,&timeout) != 0){
    if(FD_ISSET(0,&readmask)){
      〜〜
    if(FD_ISSET(sock,&readmask)){
      〜〜
797792:2005/05/20(金) 20:58:10

名前ミスしてしまた・・・
スレ汚しごめんなさい
798デフォルトの名無しさん:2005/05/21(土) 01:03:53
まさかmax_fd+1なんてオチじゃないよな?
799デフォルトの名無しさん:2005/05/21(土) 10:32:48
Javaの方がC++より速いというのは、常識なんだが・・
800デフォルトの名無しさん:2005/05/22(日) 21:23:39
lddをインストールしようと思ったのですが、lddがパッケージ一覧に見あたりません・・・
801デフォルトの名無しさん:2005/05/22(日) 22:25:37
じゃああきらめよう。
802デフォルトの名無しさん:2005/05/23(月) 15:28:43
>>800
binutilsあたりになかった?
803デフォルトの名無しさん:2005/05/23(月) 20:10:59
>>802
それはld
804デフォルトの名無しさん:2005/05/24(火) 00:05:21
仮にlddがあったとして、一体何に使うつもりなんだか
805デフォルトの名無しさん:2005/05/24(火) 00:14:01
072
806デフォルトの名無しさん:2005/06/05(日) 01:29:13
platexが見当たらない
807デフォルトの名無しさん:2005/06/05(日) 11:49:31
cygwinってeggでコンパイルできないんですか?
808デフォルトの名無しさん:2005/06/08(水) 11:54:55
WindowsXP+DevC++-JP(Mingw)でOpenCVを使おうと
ttp://www.design.t.u-tokyo.ac.jp/~nakano/opencv.html#code_make
ここのサンプルプログラムをそのまま流用したところ、
コンパイル後実行したところ、エラーが発生しました。
デバッガを動かしたところ、cvCaptureFromCAM()関数で
「メモリアクセス違反」(だったかな…)といわれました。
OpenCVから用意されてる関数を使おうとするとこのようになるみたいです。
何か解決方法があれば教えてください。

ちなみに、Meでも同じようにしてコンパイル>実行をしてみましたが、
結果はおなじでした…
809デフォルトの名無しさん:2005/06/09(木) 10:21:06
WindowsXPでCygwinデバッガ gdbを使っていますが、プログラム実行時の
標準入出力のリダイレクトがうまく行きません。どうやったらうまく行くの
かご教授をお願いne。

実行したコマンド

c:\>gdb test.exe
:
:
(gdb) run >output.txt
出力結果 <--- リダイレクトされずに表示されてしまう
Program exited normally.
(gdb)
810デフォルトの名無しさん:2005/06/10(金) 00:23:47
set args
811デフォルトの名無しさん:2005/06/10(金) 09:37:07
C のマクロ文について質問させてください。
マクロを一時的に無効にしたいのですが、可能でしょうか?
可能でしたらご教示よろしくお願いします。

#if ...
#define ABC ...... // 条件による定義
#endif

#invalidate ABC // 一時的に ABC を定義を無効にしたい
#validate ABC // 定義を有効にしたい
(#invalidate #validate なんてマクロ文はありませんが...)
812779=781:2005/06/10(金) 09:57:14
>>811
「一時的に」は無理。
#undef ABC
して、改めて
#define ABC ...

もしABCの定義が散らばるのがいやならば、
#if ...
#define ABC ...
#endif
だけのdefine_ABC.hでも作って、

#undef ABC
...;
#include "define_ABC.h"
とでもするとか。
813デフォルトの名無しさん:2005/06/10(金) 09:58:00
おっと、名前消し忘れたぜ…_/ ̄|○
814811:2005/06/10(金) 12:11:42
>>812
ありがとうございます。
とても勉強になりました。
815デフォルトの名無しさん:2005/06/10(金) 23:25:57
MinGW 4.1.0 Release出てるね。
816デフォルトの名無しさん:2005/06/11(土) 00:36:33
>>815
変更点キボン
817デフォルトの名無しさん:2005/06/11(土) 00:44:26
>>816
mingw-makeが新しくなってる。4.0.5からの変更点はこれだけかな?

gcc4.0.0とは別物。MinGW自体まだgcc3.4.4の候補版止まりだし。
で、MinGW本家で、全部ダウンロードするのか、その都度ダウンロード
する今までの形式に戻すか、議論がされている。まだISDN使ってる
人がアメリカでは多いみたいで。

という事で、MinGW3.4.2を現在使っている人は、好奇心で入れて
みるか、入れないでそのまま様子見でもいいと思う。3.4.4はまだベータ版
なのでさすがに怖い。
818デフォルトの名無しさん:2005/06/12(日) 08:38:42
gcc version 3.4.2 (mingw-special) というものを使っているのですが、
C の gcc 拡張として ushort や uint といったタイプは使えないのでしょうか?
Linux 上の 3.3.3 で普通に使えていたので、そのままソースを持ってきたのですが、
エラーでまくりで。
819デフォルトの名無しさん:2005/06/12(日) 09:23:00
>>818
gcc拡張でもなんでもない。
typedef unsigned short ushort;
820デフォルトの名無しさん:2005/06/13(月) 14:01:00
mingw-gcc3.4.4 いれていくつかプログラムをビルドして
みたけど、いまのところ大きな問題はないみたい。
821808:2005/06/15(水) 18:46:44
>>808
なんとか自己解決できました。
下の2つのサイトを参考に(Cygwinでの解決方法ですが)
Dlltoolを使いdllに接続するライブラリを作れば大丈夫なようです。
ttp://www.dh.aist.go.jp/~kimura/opencv/opencv-0.9.5.html.ja
ttp://hawaii.aist-nara.ac.jp/~takash-b/japanese/opencv.html#OpenCVonCygwin

ライブラリの作成方法(コマンドプロンプトから)
echo EXPORTS > xxx.def
nm \Program Files\OpenCV\lib\xxx.lib | grep ' T _' | sed 's/.* T _//' >> xxx.def
dlltool --def xxx.def --dllname xxx096.dll --output-lib libxxx.a

※xxxはOpenCVに同梱されているライブラリ名、cv,cvaux,cvcam,cxcore,highguiが入ります。
※grepやsedコマンドはChStandard(ttp://www.softintegration.com/products/chstandard/download/)が必要。
822デフォルトの名無しさん:2005/06/16(木) 08:47:41
>>821
自己解決&報告乙。
823デフォルトの名無しさん:2005/06/23(木) 13:39:35
wget-1.9.1-mingwPORT.tar.bz2 キタ
824デフォルトの名無しさん:2005/06/24(金) 00:13:41
mingwかcygwinで64bitバイナリ吐けるgccあります?
825デフォルトの名無しさん:2005/06/24(金) 01:01:56
まだ
Binutils待ち
ていうかむしろ俺が欲しい
そして俺にはBinutilsハクるだけの気力ナシング
826825:2005/06/24(金) 01:03:24
正確に言うと
GCCはx86-64の汗んぶりコード吐けるのだが
それをELF64でなくCOFF+(だっけ?)で吐ける
Binutilsがまだ存在しない。
827デフォルトの名無しさん:2005/06/24(金) 02:12:36
まだないのか
yasmがあるから行けそうな気もするんだけどなぁ
828デフォルトの名無しさん:2005/07/03(日) 02:49:02
Cygwin+gccで○○がコンパイルできない的な質問はここでよろしいでしょうか?
もし違いましたら誘導お願いします。
829デフォルトの名無しさん:2005/07/03(日) 07:33:51
cygwin gcc 相談だから OK だと思う
830デフォルトの名無しさん:2005/07/03(日) 08:15:42
>828
自前で書いたプログラムならともかく、配布されてるものなら UNIX 板か Windows 板の Cygwin スレじゃないか?
現状どっちも雰囲気よくないけどね。
831デフォルトの名無しさん:2005/07/03(日) 08:55:42
言語やコンパイラ類自身に関する問題ならこちらでもかまわないと思うが、
たいていは、ヘッダー関連など Cygwinのシステム上の問題、
「コンパイルできない」んじゃなくて単に Cygwinへの移植がわからない、
というのを認識できてない場合が多いだろうからなあ。
このほとんどの場合は、Cygwinスレのほうがより妥当だと思うが。
832デフォルトの名無しさん:2005/07/03(日) 10:27:27
829様
830様
831様

丁寧なレスポンスどうもありがとう御座います。
このスレッドを見る限りコンパイラ類自身の話題が多いと判断しました。
そこでCygwinスレのほうへ行って見ます。
833デフォルトの名無しさん:2005/07/04(月) 17:17:26
MinGWでDLLを作りたいのですが
gcc -O2 -o hoge1.o -c hoge1.c
gcc -O2 -o hoge2.o -c hoge2.c
dllwrap -k -def hoge.def --driver-name gcc -o hoge.dll foo.a hoge1.o hgoe2.o
とやってもうまくリンクされません
リンク時に実行しているfoo.a内の関数がundefined reference to 〜と出てしまいます
どうやってリンクさせたらいいですか?

普通にEXEファイルは作れるのでライブラリ自体は正常だと思います
834デフォルトの名無しさん:2005/07/04(月) 17:32:25
>>833
> リンク時に実行しているfoo.a内の関数がundefined reference to 〜と出てしまいます

この文が不明確。ちゃんと詳しく書きましょう。「実行」ってなんだ。

> 普通にEXEファイルは作れるのでライブラリ自体は正常だと思います

インポートライブラリfoo.aは正常と言いたいのかな?
835デフォルトの名無しさん:2005/07/04(月) 18:14:29
>この文が不明確。
hoge2.cの中でfoo.aの中の関数func()を呼び出しているのですが
undefined reference to `func'
とdllwrapを実行するとエラーになってしまいます

>インポートライブラリfoo.aは正常と言いたいのかな?
そうです。
836デフォルトの名無しさん:2005/07/04(月) 18:28:29
>>835

だったら、
> dllwrap 略 -o hoge.dll hoge1.o hoge2.o foo.a
じゃない?
837デフォルトの名無しさん:2005/07/04(月) 18:35:15
えっ!?
順番って関係するのか…il||li ○| ̄|_
リンクできました。スレ汚しスマソ
838833=835=837:2005/07/04(月) 21:25:34
エラーは出なくなったけどやっぱりリンクされていないっぽい…orz
ビルド後のDLLのサイズがfoo.aより明らかに小さいし…
839デフォルトの名無しさん:2005/07/04(月) 22:10:32
>>ビルド後のDLLのサイズがfoo.aより明らかに小さい
だからなに?
840デフォルトの名無しさん:2005/07/04(月) 22:36:58
>>838
hoge.dllのサイズとインポートライブラリfoo.aのサイズは何の関係もないぞ?
841デフォルトの名無しさん:2005/07/05(火) 23:09:44
mingwの日本版ではない物を使っているのですが
2バイト文字を使っていてもエラーや文字化けが起こりません
どうしたらいいでしょうか?
842デフォルトの名無しさん:2005/07/05(火) 23:57:00
あきらめる
843デフォルトの名無しさん:2005/07/06(水) 00:13:29
>>841
文字化けに関してはソースの文字コード変えてみたら?
うまくいけばエラーにもかかるかも。
844デフォルトの名無しさん:2005/07/06(水) 09:57:17
文字化けやエラーを起こしたいのか
845デフォルトの名無しさん:2005/07/06(水) 13:41:10
>>841
「ソ」とか「表」を使ってみれ。
846デフォルトの名無しさん:2005/07/06(水) 14:17:26
MinGWでマルチスレッドな事をしたいんだけどどこか解説しているWebページとかあったら教えて下さい
847デフォルトの名無しさん:2005/07/06(水) 14:32:53
>>846
コードはVC++のときと何ら変わらんですよ。

848846:2005/07/06(水) 14:45:45
VC++にあってMinGWにないスレッド関係の関数があるとか無いとか見たことあるんだけど
そこら辺は問題なし?
849デフォルトの名無しさん:2005/07/06(水) 14:51:27
ぱっと思いつくところでは、MinGWには__declspec(thread)がない、ぐ
らいかなあ。

850846:2005/07/06(水) 23:03:34
thx。VC++のサンプル見ながらやってみます
851デフォルトの名無しさん:2005/07/07(木) 03:57:09
俺はpthreadつかうよ。
852デフォルトの名無しさん:2005/07/12(火) 21:22:34
MinGW + gcc 3.4.2を最近インストールしたのですが、gcc 3.3.1の頃に比べて
全く同じソースでも、吐き出すバイナリが少しばかり大きいことに気が付きました。
吐き出されたバイナリをエディタで覗いてみると、

-LIBGCCW32-EH-2-SJLJ-GTHR-MINGW32 w32_sharedptr->size == sizeof(W32_EH_SHARED) %s:%u: failed assertion `%s'
../../gcc/gcc/config/i386/w32-shared-ptr.c GetAtomNameA (atom, s, sizeof(s)) != 0

という、3.3.1でビルドした時にはなかった文字列が含まれていました。
stripしても残ったままです。

これは一体何で、削除する方法はあるのでしょうか。
853デフォルトの名無しさん:2005/07/12(火) 21:57:11
細かいことを気にしていると禿げるぞ
854852:2005/07/12(火) 21:58:21
>>853
まあ、そうおっしゃらずに。
855デフォルトの名無しさん:2005/07/13(水) 11:54:02
>>852
必要だからlibgccからリンクされるんであって、削除しようなんて考え
ないことだ。

856デフォルトの名無しさん:2005/07/15(金) 01:05:21
MinGW環境で使えるGUIなソースレベルデバッガってあったら教えて
857デフォルトの名無しさん:2005/07/15(金) 02:04:18
insight?
gvd?
好きなのを選べ
858デフォルトの名無しさん:2005/07/15(金) 13:36:09
>>852
古いの使うか自分でビルドしる
859デフォルトの名無しさん:2005/07/15(金) 21:43:02
MinGWのgccではなく、cygwinのgccを使うメリットって何?
単に"Unixもどきのコマンドやスクリプトが使える"ってだけかな。
UnixにたいしてこだわりがなければMinGWでOK?
860デフォルトの名無しさん:2005/07/15(金) 21:57:56
/dev/以下が使えるとか
861デフォルトの名無しさん:2005/07/15(金) 21:58:13
>>859
「もどき」じゃなくて本物だけどね(gnuプロダクトを「本物」と言えれば、だけど)。

Windowsにそもそも存在しない概念とかはmingwでは未実装になってることもあるから、
unix由来のソースをコンパイルする場合はmingwでは役者不足の場合もある。
Windowsでしか使わないものを自分で作るのであれば、その辺考慮して、お好きなように。

gccに限った話なら、cygwinのgccでもmingw相当のバイナリ(つまりcygwinに依存しない)
が作れるから、コンソール環境が揃ってるcygwinを使わない理由はあんまりない。
cmd.exe(command.exe)で十分だってのなら、こちらもお好きなように。
862デフォルトの名無しさん:2005/07/15(金) 22:01:50
>>861
>command.exe
違和感を覚えた俺…
863デフォルトの名無しさん:2005/07/15(金) 22:19:01
cmd.exe
command.com
864デフォルトの名無しさん:2005/07/15(金) 23:52:46
>>861
役者不足って、
力不足か?
865デフォルトの名無しさん:2005/07/16(土) 01:58:38
cygwin core が GPL でなければいつまでも mingw と
分離し続けることもなかったのになぁ
合流して一本化できたかもしれない
866デフォルトの名無しさん:2005/07/16(土) 02:40:06
>>862-864
ソノトオリデスゴメンナサイ...orz
867デフォルトの名無しさん:2005/07/16(土) 03:04:35
実現方法も方向性も全然違うというのに、どうやって一本化するというのか
868デフォルトの名無しさん:2005/07/16(土) 06:49:24
ヒント:EGCSとGCC
869デフォルトの名無しさん:2005/07/16(土) 16:53:18
UNIX用のCコードをWINDOWS CYGWINでコンパイラしようと思ったんだけど、
エラーばっかり出て使えない・・・なんで?
楽したいのに・・・
870デフォルトの名無しさん:2005/07/16(土) 16:57:08
>>869
つ[ちらしの裏]

真面目に質問したいのなら、もっと具体的に書かないと誰もアドバイスできないかと。
871デフォルトの名無しさん:2005/07/16(土) 17:16:52
gcc ファイル名.c > name.txt としてもエラーがリダイレクトできない・・・
872デフォルトの名無しさん:2005/07/16(土) 17:21:28
DOSでやったらコピペできました。
エラーが多いので端折ります
/usr/include/stdio.h:176: error: parse error before "size_t"
/usr/include/stdio.h:196: error: parse error before "fread"
/usr/include/sys/unistd.h:57: error: parse error before "size_t"
/usr/include/sys/unistd.h:59: error: parse error before "size_t"
ファイル名.c:175: error: parse error before "__i"
ファイル名.c:175: error: `__i' undeclared (first use in this function)
等。
CYGWINは最新でgccはsetupで入れ直しました
873デフォルトの名無しさん:2005/07/16(土) 17:25:37
>>872
こんなエラーが100行ぐらい続きます。
他のCコードでも同じようでした。
874デフォルトの名無しさん:2005/07/16(土) 17:31:21
>>871
gcc 2>&1 > name.txt

>>872
インストールが巧くいってないんでないの?
「UNIX用のCコード」ではなく、単純なプログラムを書いてそれで試したら?
875デフォルトの名無しさん:2005/07/16(土) 17:43:13
>>874
ごく簡単なプログラムなどは動くようです。
setupインストールを再度しても同じ結果。
876デフォルトの名無しさん:2005/07/16(土) 17:46:55
んじゃ、その問題の「UNIX用のCコード」でstdio.hをインクルードする前に
マクロか型定義がぶつかっているのではないかな?
インクルードする順番を変えてみるなどしてみるとか。
#さもなきゃその「ファイル名.c」を晒すかな。
877デフォルトの名無しさん:2005/07/16(土) 17:55:32
>>875
874が言ってるのは、(動くかじゃなく)ごく簡単なCソース(例えば
Hello World の出力のみ)ならばきちんとコンパイルできることを
確かめたのか、と言うこと。
それが大丈夫なら、エラーの起こるソースの移植性が悪いだけかも。
というか、初心者のCの勉強だとするとスレ違いだしつきあいきれない。
それと、一番最初のエラーが
/usr/include/stdio.h:176: error: parse error before "size_t"
だったんだよね?
878デフォルトの名無しさん:2005/07/16(土) 18:21:30
>マクロか型定義がぶつかっているのではないかな?
ぶつかってる(conflict)なら、ちゃんとそのエラーが出るけど、
初学者はエラーをきちんと読まない人もいるからねぇ。
まあ、最初のエラーじゃない可能性もあるし。
例えば他に次のコードでも、同じエラーを起こせてますし。

#define __size_t
#include <stdio.h>

In file included from sample.c:2:
/usr/include/stdio.h:176: error: parse error before "size_t"
/usr/include/stdio.h:196: error: parse error before "fread"
/usr/include/stdio.h:197: error: parse error before "fwrite"
/usr/include/stdio.h:236: error: parse error before "size_t"

879デフォルトの名無しさん:2005/07/16(土) 18:47:53
すみません解決しました。
どうやら複数のコードがまたがってたみたいで、
コードごとに分けてコンパイルしなきゃいけなかったいです。
_| ̄|○iii
すみません・・・でも勉強になりました。
ありがとうございました。
880デフォルトの名無しさん:2005/07/16(土) 20:58:41
意味がわからんが、関わるだけ無駄というのは分かった。
881デフォルトの名無しさん:2005/07/19(火) 21:07:29
本当に恥ずかしい質問です。
cygwinをインストールしたときにデスクトップにでたショートカットを間違えて消したんですが、どうすればまた起動できますか?
Cドライブの中のフォルダ内は探したのですが、それらしいのはありませんでした。
882デフォルトの名無しさん:2005/07/19(火) 21:08:12
cygwin.bat
883デフォルトの名無しさん:2005/07/19(火) 21:09:03
>>881
俺の場合そのショートカットは"D:\cygwin\cygwin.bat"にリンクされているようだ。
884デフォルトの名無しさん:2005/07/19(火) 22:08:44
>>833
ぐわっ…俺と同じドライブに入れてる…w
885デフォルトの名無しさん:2005/07/19(火) 22:13:18
>>882
>>883
レスありがとうございました。おかげで解決しました!
すいませんが、もうひとつ質問致します。
インストールしてCドライブにできたcygwinをCDに焼いて、オフライン環境のパソコンに移しました。
そこでcygwinを起動したのですが、コマンドプロンプト画面に
bash.exe: warning: could not find /tmp, please create!
と表示され、普通に操作できません。
tmpフォルダがないので出来ないと思い、bash.exeがあるフォルダに作ったのですが無理でした。
どうすればいいのですか?
886デフォルトの名無しさん:2005/07/19(火) 22:15:17
>>885
cygwinはマウント情報をレジストリに持っている
887デフォルトの名無しさん:2005/07/19(火) 22:17:51
>>885
>bash.exeがあるフォルダに作った
which bash の結果と /tmp をじっくり比較しなさい
888デフォルトの名無しさん:2005/07/19(火) 22:34:24
レジストリを読まずに.iniを読むようにするパッチをどっかの人が
作ってたと思うからそっちを調べるとか
889デフォルトの名無しさん:2005/07/19(火) 22:35:27
cygwin上にターゲットがi386-pc-elfのクロスgccをインストールしましたが、
実際にそのgccでお決まりのhelloworldをコンパイルしようとしたのですが、ldに怒られます。
バージョンは、
gcc: 3.4.4
binutils: 2.16
newlib: 1.13.0

エラーメッセージは
/usr/lib/gcc/i386-pc-elf/3.4.4/../../../../i386-pc-elf/bin/ld: crt0.o: No such
file: No such file or directory
collect2: ld returned 1 exit status

890デフォルトの名無しさん:2005/07/19(火) 22:48:39
>>886
>>887
>>888
みなさんレスありがとうございます。
現在、携帯しかオンライン環境がないので、再来週あたりにじっくりやりたいと思います。
本当にありがとうございました。
891デフォルトの名無しさん:2005/07/20(水) 00:38:00
ttp://pc8.2ch.net/test/read.cgi/unix/1107587275/701 より。

Windowsを再インストールした後でcygwinを動かす方法

環境変数CYGDIRを登録
set CYGDIR=D:\cygwin

レジストリを変更
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions]
[HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin]
[HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2]
"cygdrive prefix"="/cygdrive"
"cygdrive flags"=dword:00000022
[HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/]
"native"="%CYGDIR%"
"flags"=dword:0000000a
[HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/usr/bin]
"native"="%CYGDIR%/bin"
"flags"=dword:0000000a
[HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/usr/lib]
"native"="%CYGDIR%/lib"
"flags"=dword:0000000a
[HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\Program Options]
892デフォルトの名無しさん:2005/07/21(木) 17:42:16
cygwinでCのファイルをコンパイルしようとしたら
bash: gcc: command not found
ってエラーが出るんだけど何でか分かります?
教えて下さい。
893デフォルトの名無しさん:2005/07/21(木) 18:31:32
>>892
gccをインストールしていないのでは?
Cygwinのsetup.exeでgccにチェックはしてある?
894デフォルトの名無しさん:2005/07/21(木) 20:32:55
>>892
"command" と "not" と "found" を英和辞書で引いてみれば原因が分かるのではなかろうか
895デフォルトの名無しさん:2005/07/21(木) 20:47:37
>>892
cygwinインストールのデフォルトは"Devel"がOffになっているので、
"Devel"をマウスでいぢくってinstallにする必要がある。
896デフォルトの名無しさん:2005/07/22(金) 20:53:33
漢なら黙ってフルインストール
897デフォルトの名無しさん:2005/07/22(金) 20:56:50
>>896
cygwin以下を除外すればいいけど、ウイルススキャンが時間かかる。
898デフォルトの名無しさん:2005/07/24(日) 19:36:42
>>891
この文はコマンドプロンプトに打ち込むんですよね?
認識されません、などと出てうまくいかないのですが…
899デフォルトの名無しさん:2005/07/24(日) 19:43:29
ポカーン( д)  ゚ ゚
900デフォルトの名無しさん:2005/07/24(日) 19:51:29
   ∩___∩         |
   | ノ,,_   _,ヽ        .|
  /  "゚'` {"゚` |        J
  | ∪  ,__''_  ミ     
 彡、    ー    |       
/     ∩ノ ⊃  ヽ  
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /
901デフォルトの名無しさん:2005/07/24(日) 20:21:07
釣りじゃないです…助けてください…
902デフォルトの名無しさん:2005/07/24(日) 20:48:23
>>901
まず目的を書け。
903デフォルトの名無しさん:2005/07/24(日) 21:07:00
>>902

>>885を参照ください。オフライン環境で起動させるためです。
904デフォルトの名無しさん:2005/07/24(日) 21:22:36
>>903
コマンドプロンプトからregeditと打ち込んでみるべし。
905904:2005/07/24(日) 21:26:45
あー、変なもん弄るなよ。
マシンが起動できなくなっても俺知らんからねw
906デフォルトの名無しさん:2005/07/24(日) 22:40:09
>>904
レジストリエディタは開けました。ありがとうございます。
そこからcygwinフォルダを開いたんですが、どこに文章を打ち込めばいいのですか?
テキストをレジストリに変えてインポートするのも無理でした。新規で試しましたが出来ませんでした。
907デフォルトの名無しさん:2005/07/24(日) 22:59:03
>>906
cygwin使う前にwindowsの使い方覚えたほうがいいと思う。
908デフォルトの名無しさん:2005/07/24(日) 22:59:29
ダウンロードしたファイル一式持って行ってsetup.exeでローカルインストールした方が早くないか?
909デフォルトの名無しさん:2005/07/24(日) 23:04:25
Cygwinを使うのがまだ早い
910デフォルトの名無しさん:2005/07/24(日) 23:27:19
特殊な理由がなく、たんにシグインをネット隔離マシンにインスコしたいだけなら
>>908の方法をオススメする。
シロートがレジストリエディタいじるのは危険じゃて。
(まあ失敗->後悔するのも勉強だとおもうけど)
911デフォルトの名無しさん:2005/07/24(日) 23:30:10
それではいつまでもシロートのまま。
レジストリなどガンガンいじれ。
そして涙を流せ。
涙の数だけ強くなれるよ。
912デフォルトの名無しさん:2005/07/25(月) 00:36:05
そんな筋の悪いやり方で似非玄人になられても使えない。
913デフォルトの名無しさん:2005/07/25(月) 01:38:07
復旧手段を知っているのなら、いくら破壊しても構わないと思う、が
レジストリの操作が出来ないのなら問題外だね
914デフォルトの名無しさん:2005/07/25(月) 02:12:38
>>908の方法がいちばんいいよ
915デフォルトの名無しさん:2005/07/25(月) 19:45:29
レジストリを初めて触って、間違ってOSが立ち上がらなくなる経験を経て
はじめて一つ賢くなれる。
916デフォルトの名無しさん:2005/07/25(月) 23:34:39
よっぽどバカなんだな。
917デフォルトの名無しさん:2005/07/26(火) 17:29:51
Cygwin自体レジストリもわからないような素人が使える代物じゃないと思うけど…

>>911
同意だな…俺も昔うっかりexeの関連付け、いじっちゃって復旧不能→OS再インストールしたことあるよ…orz
ある程度慣れてくればどこをどういじると危険なのかわかるようになってくるよね

>>912
マニュアルに書いていないトラブルが起きると何も出来ない知識人乙w
918デフォルトの名無しさん:2005/07/26(火) 17:45:47
>>912>>917のようなレスを返すようだと、論理学の基礎を学び直した方がいいぞ。
919デフォルトの名無しさん:2005/07/26(火) 17:46:33
俺の歴史、最初に触れたのはPCDOS6.2だった
helpて打って流れる文字みてるだけだった。楽しかった
飽きてきたのでhelpで流れる文字を打ち込んでみた
全部がなんやら英語だらけで同じメッセージだしてきた。つまんなかった

でも一つだけなにやら立体的なもん出しやがった。楽しかった。
カーソル動かしまくっていろいろ押した。全部押した。
翌日何も動かなくなってた。奴の名前はfdisk
スキルのついた今ならはっきりとわかるfdisk以外が吐いてたメッセージは
引数よこせよばか!!だったんだ

険しい道を選べ、レジストリぐらい屁でもねー
920デフォルトの名無しさん:2005/07/26(火) 17:51:29
ROM BASICとモニタしかなかった頃ならともかく、
その時代にそんなやりかたって非効率すぎ。
単にものの学び方を知らないだけでしょ。
921デフォルトの名無しさん:2005/07/26(火) 17:58:21
サルですな

922デフォルトの名無しさん:2005/07/26(火) 18:00:39
try & errorなんて時代遅れ
923デフォルトの名無しさん:2005/07/26(火) 18:51:09
最先端のやり方教えれ。
924デフォルトの名無しさん:2005/07/26(火) 20:11:11
>>923
喪前様が最先端。
925デフォルトの名無しさん:2005/07/26(火) 20:11:44
Google先生に聞く
926デフォルトの名無しさん:2005/07/26(火) 20:38:22
stringsとstraceしてみる自分は…
927デフォルトの名無しさん:2005/07/29(金) 01:28:49
いくつか質問があります。

1つ目は、ここの

http://coconut.sys.eng.shizuoka.ac.jp/bmp/#lib

bmp.h、bmp.c、test0.cをcygwin+gccでコンパイルしてみたら、
きちんとbmpが作成されたんですが、

bmp.h で MAXWIDTHとMAXHEIGHTが1000になっていて、

color data[MAXHEIGHT][MAXWIDTH]

となっているのでスタック領域が2MBを超えているはずなのになぜかうまく動きます。
あと、これをg++でコンパイルしようとしたところ

multiple definition of〜とかになり通らなかったのですがなぜなのでしょうか?

またその後、bmp.hのグローバル変数をbmp.cだけのほうに記述することでそのエラーはなくなり、
g++でもコンパイルできたのですが、その場合実行するとスタックオーバーフロー〜のような
エラーが出ます。


MAXWIDTHとMAXHEIGHTをそれぞれ590あたりにすると2MB以下になるので実行もできたのですが、
なぜ最初の状態でgccでコンパイル、実行したときは1000、1000で出来たものが
上記のように修正した結果スタックオーバーフローが出るのでしょうか?

どなたかご存知の方いますでしょうか?
928デフォルトの名無しさん:2005/07/29(金) 03:33:44
>>927
まずbmp.hのcolor data[なんちゃら][うんちゃら]は定義。
そしてtest0.cのimgは静的変数なんでスタックには配置されない。
だからスタックオーバーフローにもならない。

あとの修正なんちゃらは、シラネ。まあがんがれや。
929デフォルトの名無しさん:2005/07/29(金) 03:38:00
普通にコンパイル通るな。
g++でコンパイルするとmain()に型がないから怒られるけど。
930デフォルトの名無しさん:2005/07/29(金) 03:40:32
つか、これC/C++の話だな。
931927:2005/07/29(金) 11:29:07
>> test0.cのimgは静的変数なんでスタックには配置されない。

とのことなのですが、なぜか

  5 [main] img 1980 handle_exceptions: Exception: STATUS_STACK_OVERFLOW
634 [main] img 1980 open_stackdumpfile: Dumping stack trace to img.exe.stack dump

のようなエラーが出てしまいます。
スレ違いとのご指摘がありましたのでc言語のほうへ行ってきます。
932デフォルトの名無しさん:2005/07/29(金) 11:57:18
http://coconut.sys.eng.shizuoka.ac.jp/bmp/#lib
ここにある、bmp.h、bmp.c、test0.c(test1.c)をcygwin+gccでコンパイル+実行すると、きちんとbmpが
作成されたんですが、これを自分なりに修正していくうちにスタックオーバーフローが出るようになりました。
以下はその修正したのを省略したものです。

img.c
------------
#include "bmp.h"

int main(int argc, char** argv) {
 img tmp;
 return 0;
}
-------------
bmp.h
-------------
#define MAXWIDTH 1000
#define MAXHEIGHT 1000

typedef struct {
 unsigned char r;
 unsigned char g;
 unsigned char b;
} color;

typedef struct {
 color data[MAXHEIGHT][MAXWIDTH];
} img;
--------------
933932:2005/07/29(金) 11:58:18
すいません、2chブラウザを使っていて同じタブのままレスしてしまいました。
934デフォルトの名無しさん:2005/07/29(金) 12:51:10
スタックのサイズなんて実行環境によって違うんだから当たり前だろ
935デフォルトの名無しさん:2005/07/29(金) 13:22:55
実行環境以前に Cを理解してないのが問題なので、
もうここでは止める、がよろし。
936デフォルトの名無しさん:2005/07/29(金) 23:57:41
UNIT GenieList;

INTERFACE

USES
SANE, DialogUtils, GFiles, GCommonDec;

PROCEDURE MAIN (lMessage: INTEGER;
lSelect: BOOLEAN;
lRect: Rect;
lCell: Cell;
lDataOffset, lDataLen: INTEGER;
lHandle: ListHandle);

IMPLEMENTATION

PROCEDURE MAIN (lMessage: INTEGER;
lSelect: BOOLEAN;
lRect: Rect;
lCell: Cell;
lDataOffset, lDataLen: INTE

これ何言語かわかりますか?
ファイルの拡張子は.pです。
937デフォルトの名無しさん:2005/07/30(土) 00:08:13
>>936
PASCALじゃないか?
938デフォルトの名無しさん:2005/07/30(土) 01:53:50
ひょっとしたらCかもしれんけどな
ttp://www.pro.or.jp/~fuji/computerbooks/c/c.modula2.html

pseudo_pas.h がどこかに隠れてないか探してみろ
939デフォルトの名無しさん:2005/07/30(土) 02:52:01
>>936
つまらん。氏ね。
940デフォルトの名無しさん:2005/07/31(日) 12:59:10
cygwinの最新版をフルインストールしたらsysvinit.shを実行するところでフリーズ。
そのまま一晩放置したところ、空き容量30GByteのハードディスクが満杯に。
復帰するのに3日かかったよ・・・
941デフォルトの名無しさん:2005/08/01(月) 15:54:09
cygwin, gcc ver 3.4.4にてプロファイラが使いたいと思っています。
/*proftest.c*/
#include <string.h>

int main(void)
{
char ss[80] = "abcdefgh";
char str[80] = "ABCDEFGH";
int i;
for(i=0;i<10000;i++){
strcmp(ss, str);
strncmp(ss, str, 8);
}
return 0;
}

こんなサンプルコードなんですがどうやったらプロファイルができるのか分かりません。

↓のようなコマンドでやってみたりもしましたが
$ gcc proftest.c -p -o proftest

下記のような変なエラーが出てしまいます。
どうすればいいんでしょうか

/*変なエラー*/
/cygdrive/c/DOCUME~1/giko/LOCALS~1/Temp/ccmOHUj1.o:proftest.c:(.text+0x9): u
ndefined reference to `_mcount'
/cygdrive/c/DOCUME~1/giko/LOCALS~1/Temp/ccmOHUj1.o:proftest.c:(.text+0x20):
undefined reference to `_mcount'
/cygdrive/c/DOCUME~1/giko/LOCALS~1/Temp/ccmOHUj1.o:proftest.c:(.text+0x35):
undefined reference to `_mcount'
〜〜以下略〜〜
942デフォルトの名無しさん:2005/08/01(月) 20:08:48
MinGWのcfgmgr32.hってちゃんと動く?
ttp://support.microsoft.com/default.aspx?scid=kb;ja;JP259697
をやりたいのだが機能しないような…?
943デフォルトの名無しさん:2005/08/01(月) 20:56:26
>>941
-pじゃなくて-pgを試してみたら。


944デフォルトの名無しさん:2005/08/01(月) 21:09:44
$ gcc proftest.c -pg -o proftest
>943さん
このコマンドでコンパイルできました、ありがとうございます。

ですが、
$./prof, $profとしても
bash: ./prof: No such file or directory
と言われてしまい目的が果たせません。

プロファイラを実行するのに必要なコマンドってありますか?
945デフォルトの名無しさん:2005/08/01(月) 21:37:54
>>944
gprof

その質問を見るに、なんだか基礎知識が激しく不足してそうね。
946デフォルトの名無しさん:2005/08/01(月) 22:43:04
>>944
$ gcc -pg -o proftest proftest.c
$ ./proftest
$ gprof ./proftest > proftest.gprof
でどう?
947デフォルトの名無しさん:2005/08/02(火) 11:05:16
できた、できた、できました〜〜
>946さんありがとうございます。

精進してきます。
9481:2005/08/02(火) 12:56:06
>>950
次スレよろ
それとタイトル直してくだちい
cygwin + mingw + gcc相談室ね
949デフォルトの名無しさん:2005/08/02(火) 13:43:43
MinGWだとWinows、mingwだとクロス環境をイメージしてしまう。
cygwin上だからクロスだろ、と言われるとそうかなと思ったり思わなかったり。
950デフォルトの名無しさん:2005/08/05(金) 04:16:00
>948
当方plala。合点承知した!
951デフォルトの名無しさん:2005/08/05(金) 16:52:42
コンソールを表示するDLLって生成できますか?
952デフォルトの名無しさん:2005/08/05(金) 21:44:59
もっと噛み砕いて、
それどう解釈する?DLLだとなぜできないと?
953951:2005/08/06(土) 02:09:14
あ、思いっきり説明不足だな…すまん…orz
DLLのデバッグにSTDOUT(printf等)を使いたい
プラグインなので親アプリ側で作るのは不可能

で、DLL側でコンソールを表示させられないかと…
954デフォルトの名無しさん:2005/08/06(土) 02:13:21
リストコントロールでもええんちゃうの?Cygwinじゃ多少めんどくさいけど。
955デフォルトの名無しさん:2005/08/06(土) 02:31:27
ファイルにでも出力するとか
956デフォルトの名無しさん:2005/08/06(土) 03:16:27
ファイルにappendで出力して tail -f が一番簡単
957951:2005/08/06(土) 03:32:47
使っているライブラリの出力先がSTDOUT及びSTDERRなのでこれらのメッセージを取れないと
意味ないんです(インタプリタの組み込みをやっているので…)

STDOUTをリストコントロールとかファイルに出力する方法ってあるんですか?
958デフォルトの名無しさん:2005/08/06(土) 03:42:10
959デフォルトの名無しさん:2005/08/06(土) 06:04:11
AllocConsole()とかじゃ駄目なの?
960デフォルトの名無しさん:2005/08/06(土) 06:56:07
stdoutなりstderrなりをファイルにすればいいだけでは?
961デフォルトの名無しさん:2005/08/06(土) 09:16:29
>>957
リダイレクト
962デフォルトの名無しさん:2005/08/07(日) 10:25:48
>>957

freopen ()

963デフォルトの名無しさん:2005/08/10(水) 02:42:53
gcc-4.1-20050806がビルドできないorz
次のsnapshot待つしかないんですかね…?

../../gcc/libgcc2.c:772: error: unrecognizable insn:
(insn 30 29 31 2 ../../gcc/libgcc2.c:769 (set (subreg:SI (reg:DI 202) 0)
        (if_then_else:SI (eq:SI (reg:SI 203)
                (const_int 0 [0x0]))
            (subreg:SI (reg:DI 202) 0)
            (subreg:SI (reg:DI 202) 4))) -1 (nil)
    (expr_list:REG_NO_CONFLICT (reg/v:DI 200 [ x ])
        (expr_list:REG_NO_CONFLICT (reg/v:SI 198 [ i ])
            (nil))))
../../gcc/libgcc2.c:772: internal compiler error: in extract_insn, at recog.c:20
84
964デフォルトの名無しさん:2005/08/20(土) 14:09:01
MSDNヘルプにCのライブラリを使う場合は
CreateThreadじゃなくて_beginthreadexを使えって書いてあるんですが、
これって"msvcrtを使う場合は"っていう意味でしょうか?
だとしたらcygwinではCreateThreadを使っても問題無しで
mingwでは_beginthreadexを使わなければメモリリーク発生の可能性があり
BCCとか他のVCランタイム使わないコンパイラでは
もちろんCreateThreadで問題無いということでしょうか?
965デフォルトの名無しさん:2005/08/20(土) 14:27:36
CreateThreadはスレッドだけ作ってランタイムの初期化が行われないって
だけだから、結局ランタイムを使いたいときは環境ごとにやり方を調べる
しかない。

Cygwinはpthreadを使わないときつかったような。
966デフォルトの名無しさん:2005/08/21(日) 18:54:54
日本語のMSDNだとCランタイム使用すると必ずリークするみたいに書いてあるけど、
↓にはもう少し詳しい説明があるね

ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/createthread.asp

A thread in an executable that calls the C run-time library (CRT)
should use the _beginthread and _endthread functions for thread
management rather than CreateThread and ExitThread; this requires
the use of the multi-threaded version of the CRT. It is safe to call
CreateThread and ExitThread from a thread in a DLL that links to the
static CRT as long as the thread does not call the
DisableThreadLibraryCalls function.
967デフォルトの名無しさん:2005/08/22(月) 00:34:20
ちょっと、ここの人とは環境違うみたいだが・・・適当な場所が思いつかんので・・・誘導プリーズ。
ホストVine Linux、ターゲットi386-mingw32でgccをコンパイルしたら
sys/wait.hがないと怒られるんだが・・・
へるぷみー
968デフォルトの名無しさん:2005/08/22(月) 07:29:06
GCC自体の話ならこっちかな?
http://pc8.2ch.net/test/read.cgi/tech/1121146723/

素人目にはconfigureでバグorミスってる気がする。
mingwでwait(2)なんて使えるわけないし。
969デフォルトの名無しさん:2005/09/01(木) 12:04:47
保守
970デフォルトの名無しさん:2005/09/06(火) 02:46:38
VCから乗り換えで、cygwinでgccを使い始めたばかりなのですが、
gcc -o test test.c
で生成されたtest.exeはクリックするとcygwin.dllがありませんと出てしまいます。
いわゆるリリース版は、どのように生成すればよいのでしょうか?
御指南をお願いします。
971デフォルトの名無しさん:2005/09/06(火) 03:27:05
>>970
それでリリース版だよ。
VCでコンパイルしたらkernel32.dllやuser32.dllに依存するでしょ。それと似たようなもの。
cygwinで普通にコンパイルするとcygwin.dllに依存した形になるので、
cygwin.dllがパスの通る位置においてある必要がある。
972デフォルトの名無しさん:2005/09/06(火) 03:42:59
-mno-cygwin
973デフォルトの名無しさん:2005/09/06(火) 05:59:14
cygwin1.dll
974970:2005/09/06(火) 21:22:13
できました。ありがとうございます。m(_ _)m
975デフォルトの名無しさん:2005/09/06(火) 22:38:57
>>974
Cygwin固有のUNIXシステムコールを使う気が無いのなら、MinGWがおすすめ。
976デフォルトの名無しさん:2005/09/06(火) 23:49:37
すなわちそれが mingw
977デフォルトの名無しさん:2005/09/07(水) 12:54:17
すなわちそれが mingwn
次スレもこのままのスレタイで行こうじゃないか

>>980
次スレよろ
978デフォルトの名無しさん:2005/09/07(水) 13:23:13
チキンレース!!!
979デフォルトの名無しさん:2005/09/07(水) 15:41:59
↓よろしく
980デフォルトの名無しさん:2005/09/07(水) 23:14:42
おっ立ててきます。
981デフォルトの名無しさん:2005/09/07(水) 23:30:11
次スレ
cygwin + mingwn + gcc 相談室 Part2
http://pc8.2ch.net/test/read.cgi/tech/1126103347/
982977:2005/09/07(水) 23:33:02
>>980
983デフォルトの名無しさん:2005/09/07(水) 23:37:40
984デフォルトの名無しさん
>>982
こら!

>>980-981
おつ