cygwin + mingwn + gcc 相談室

このエントリーをはてなブックマークに追加
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
おつ