5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

gcjって使ってる人います?

1 :デフォルトの名無しさん:03/03/03 02:56
1なのにsageちゃうあたりがgcj


本家
http://gcc.gnu.org/java/


関連:
「GCCについて part2」
http://pc2.2ch.net/test/read.cgi/tech/1046179115/

2 :デフォルトの名無しさん:03/03/03 03:00
>>1
sageてても一番上に出てますた

3 :デフォルトの名無しさん:03/03/03 03:01

   C#厨が3getです。

    ┏━━┓
    ┃C# ┃
  ⊂(`・ω・´⊂⌒`つ≡≡≡(´⌒;


4 :デフォルトの名無しさん:03/03/03 03:03

      、ヾ''""ツノ, <ほっしゅ入りまーす
     ミ ・д・ 彡
     "ミ,, , ; ;;::ヾ
       "'''''""


5 :デフォルトの名無しさん:03/03/03 03:04
ネイティブコードにコンパイルする意味ってあるのかね。
最近のVMなら十分な速度出てると思うが。

かといって、IOとかGUI系はまだ実装不完全だろ?これ


6 :デフォルトの名無しさん:03/03/03 03:06
RMSの自己満(略

7 :デフォルトの名無しさん:03/03/03 03:06
>>5
GPLなことに意味があります。
Blackdownの借りをかえさなくてはいけません。

8 :デフォルトの名無しさん:03/03/03 03:18
結構サポートされてる・かな?
http://gcc.gnu.org/java/status.html

9 :デフォルトの名無しさん:03/03/03 03:33
windows 環境での gcj 事始

0. JDK はインストール済みとする。最新の 1.4.1_02 推奨。

1. まず cygwin をインストールしましょう。
Base と Devel カテゴリーをごりっと全部インストールしてください。
cygwin の質問は以下のサイトやスレで。
http://www.mars.dti.ne.jp/~sohda/cygwin/
Cygwin使っている人いますか? part7
http://pc.2ch.net/test/read.cgi/unix/1039449446/
Cygwin使っている人いますか?
http://pc2.2ch.net/test/read.cgi/win/1023470780/

2. インストールしたら cygwin のシェルで
$gcc -v
と打ってみましょう。
バージョンが 3.x、--enable-languages に java が入っていることを確認してください。


10 :デフォルトの名無しさん:03/03/03 03:33
3バッカ

11 :デフォルトの名無しさん:03/03/03 03:38
3. プログラムを書いてみましょう。
メモ帳などで以下の簡単なプログラムを作ります。
--- Hello.java
class Hello {
  public static void main(String args[]) {
    System.out.println("hello world");
  }
}

4. コンパイルしてみましょう。
クラスファイルを作成します。-C オプションを指定します。
$gcj -C Hello.java
Hello.class が作成されているはずです。

5. JDK の java コマンドを使って実行してみましょう。
$java Hello
hello world

12 :デフォルトの名無しさん:03/03/03 03:43
バイナリ生成はどうするの?

13 :デフォルトの名無しさん:03/03/03 03:45
6. 実行ファイルを作ってみましょう。
実行を開始する main メソッドのあるクラスを --main オプションで指定します。
出力するファイル名を -o オプションで指定します。
$gcj --main=Hello -o Hello.exe Hello.java

7. 実行してみましょう。
$./Hello.exe
hello world

apx. gcc 同様最適化の指定もできます。
$gcj -O3 --main=Hello -o Hello.exe Hello.java

14 :デフォルトの名無しさん:03/03/03 03:49
/usr/lib/gcc-lib/i686-pc-cygwin/3.2/../../../../i686-pc-cygwin/bin/ld: cannot find -liconv
こんなんでちゃうな。。。ldはあるんだけど。

15 :デフォルトの名無しさん:03/03/03 03:54
http://www.cygwin.com/ml/cygwin-apps/2002-10/msg00011.html
ここに書いてあった。失礼

16 :デフォルトの名無しさん:03/03/03 03:57
コンパイルとリンクを分ける場合
$gcj -c -o Hello Hello.java
$gcj --main=Hello -o Hello Hello.o

17 :デフォルトの名無しさん:03/03/03 04:05
日本語のリテラルをソース中に記述したい場合
→UTF-8 で保存する

18 :デフォルトの名無しさん:03/03/03 04:08
GCJ と SWT で Linux ネイティブアプリを作るお話

Create native, cross-platform GUI applications
--How GCJ, Linux, and the SWT come together to solve the Java UI conundrum
http://www-106.ibm.com/developerworks/linux/library/j-nativegui/index.html?dwzone=linux

cygwin でもできそうな気はするが。

19 :デフォルトの名無しさん:03/03/03 04:21
Java using SWT and GCJ 3.2 for Win32
http://gcc.gnu.org/ml/java/2002-12/msg00105.html

cygwin じゃなくて mingw で gcj したい人向け
How to build GCJ for Windows
http://ranjitmathew.tripod.com/phartz/gcj/bldgcj.html

この辺は試してない。

20 :デフォルトの名無しさん:03/03/03 04:32
>>14の件はlibiconvをインストールしたら上手くいきました。

21 :デフォルトの名無しさん:03/03/03 05:06
それにしてもバイナリでっかいねえ。まだまだ最適化に
関してはやることが沢山あるのかな。

22 :デフォルトの名無しさん:03/03/03 05:16
少し古いけど首藤さんとこでとったベンチ
http://www.shudo.net/jit/perf/index.html

23 :デフォルトの名無しさん:03/03/03 05:16
>>19 補足
http://sourceforge.net/projects/mingw/
http://sourceforge.net/project/shownotes.php?release_id=127221

>>21
JRE を内蔵していると考えればこんなもんかと。
strip して upx かければ多少縮まる。

24 :デフォルトの名無しさん:03/03/03 05:45
>>23
これさ、オブジェクトファイルは5kなのにバイナリ作ると
一気に2MB,stripかけても1.3MBにもなるのね。
そのくっつく部分をライブラリとしてそとに出せないもんなのかな?

25 :デフォルトの名無しさん:03/03/03 08:11
せめてAWTに対応してたらなぁ・・・

26 :デフォルトの名無しさん:03/03/03 10:38
>>25
AWT フルサポートしたら Swing も殆ど全部動くでしょ。

27 :デフォルトの名無しさん:03/03/03 14:56
>>21
ちゃうちゃう、Javaの標準ライブラリを全部抱えてるから
>>24
できるよ。つか*nix系だとデフォでそーなってる(ハズ)。
win系(cygwin/mingw)で.aから.dllを作る方法はそっち方面探せ。


28 :デフォルトの名無しさん:03/03/03 18:40
保守上げ


29 :デフォルトの名無しさん:03/03/03 19:37
>>24>>27
Linuxでダイナミックリンクした場合、HelloWorldは5152バイト。

リンクしている共有ライブラリはこんな感じ。

% ldd HelloWorld
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x4002c000)
libgcj.so.2 => /usr/lib/libgcj.so.2 (0x40034000)
libm.so.6 => /lib/i686/libm.so.6 (0x403e8000)
libz.so.1 => /usr/lib/libz.so.1 (0x4040a000)
libdl.so.2 => /lib/libdl.so.2 (0x40418000)
libc.so.6 => /lib/i686/libc.so.6 (0x42000000)
libgcjgc.so.1 => /usr/lib/libgcjgc.so.1 (0x4041b000)
libpthread.so.0 => /lib/i686/libpthread.so.0 (0x40447000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

30 :デフォルトの名無しさん:03/03/03 22:49
cygwin 版は -shared を無視されるっぽい。
mingw 版は動的リンクできるのかな。


31 :デフォルトの名無しさん:03/03/05 22:22
cygwin 上で gcc をビルドしようと試みたが、
case-insensitive bug なる問題で gcj がビルドできなかった。
どうやら case-sensitive なファイルシステム上でクロスコンパイルしてやらないとダメらしい。

32 :デフォルトの名無しさん:03/03/05 23:52
どうでもいいが、gcjよりgjcのほうが名称として適当な気がする、、、

33 :デフォルトの名無しさん:03/03/06 14:57
Gnu Compiler for Java

34 :デフォルトの名無しさん:03/03/07 07:47
>>29>>30
libgcjを共有ライブラリにした場合
HelloWorld(strip)
mingw : 12800
cygwin: 11776
Helloswt/mingw
static: 3453952
gcjのみdll: 1565696
gcj/swtをdll: 12824


35 :デフォルトの名無しさん:03/03/08 20:15
>>34
情報さんくす

36 :デフォルトの名無しさん:03/03/08 22:31
>>30
MinGW のとこに置いてあったバイナリだと無理っす。
gcj -v の出力

Configured with: /extra/src/gcc/gcc-3.2/configure --prefix=/extra/wingcc --build
=i686-pc-linux-gnu --host=mingw32 --target=mingw32 --enable-languages=c,c++,java
--with-gcc --with-gnu-as --with-gnu-ld --with-as=/extra/xgcc/bin/mingw32-as --w
ith-ld=/extra/xgcc/bin/mingw32-ld --enable-threads=win32 --disable-nls --disable
-win32-registry --disable-shared --disable-debug --disable-multilib --without-ne
wlib --enable-libgcj --disable-java-awt --without-x --enable-java-gc=boehm --dis
able-libgcj-debug --enable-interpreter --enable-hash-synchronization
Thread model: win32
gcc version 3.2 (mingw special 20020817-1)

37 :34:03/03/10 06:57
>>30,>>36
34はコンパイラ自体はcygwin,mingw標準のものです。

gcjコンパイラバイナリは関係ないす。共有ライブラリ(のインポートライブラリ)があるかどうか。
で.aから.dllを作るには基本的にはバラして再リンクすればいいわけだが、.aと.dllの挙動の違い
(ライブラリ側にdeclspec(dllexport)または.defが、使う側にdeclspec(dllimport)が必要など)
をldで自動的に吸収するために、リンク時にオプションで小細工が必要。

この辺参照。
http://gcc.gnu.org/ml/java/2002-12/msg00287.html
なおcygwinではpseudo-reloc.cは不要。

とここまでふっといてgcjを常用してるかっつーとためしにやってみたダケなんだが。

38 :デフォルトの名無しさん:03/03/15 02:46
zip -d *AWT* swt.jar
でAWT関係のクラスを削除したswt.jarをmingwのGCJでコンパイルすると
unreachable bytecode from...っていう警告がたくさん出てくるのですが、オブジェクトファイルはできてるんです
これで大丈夫なんでしょうか?


39 :デフォルトの名無しさん:03/03/15 02:54
>>38
たぶん大丈夫でしょ。到達不能な部分があるってだけの話だから。
その警告は特定バージョンのための条件分岐とかあると絶対出てくるので。

40 :38:03/03/15 03:27
>>39
ありがとうございます、とりあえずこのまま使ってみます

41 :38:03/03/15 09:58
メモがてらちょこっとインストール解説ページを作ってみたけど
あらためて自分の文才のなさが浮き彫りに(鬱

http://page.freett.com/gikob/gcjswt.html

42 :デフォルトの名無しさん:03/03/15 21:44
>>41
さんの解説通り
インストールできました

わかりやすかったです

swingで書いたアプリを移植するは
アプリによっては大変ですね
描画をたくさんしていると
awt.ColorとかGraphicsとかを
書き換えないといけないです

いい方法ないでしょうか?

43 :42:03/03/15 22:08
すいません
>>42の後半はスレ違いでした


44 :デフォルトの名無しさん:03/03/17 04:18
保守

45 :デフォルトの名無しさん:03/03/17 14:16
cygwin/mingwでライブラリをdllにするのはどーやるの?

46 :デフォルトの名無しさん:03/03/18 00:10
dllwrapとかいうコマンドがあります

47 :デフォルトの名無しさん:03/03/18 00:35
gcc に -shared オプションをつける

48 :デフォルトの名無しさん:03/03/21 23:18
定期保守

49 :tantei:03/03/21 23:19
★あなたのお悩み解決致します!!
●浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
●盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
●行方調査
行方不明になっている家族の消息を調査致します!!
●電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
●ストーカー対策
社会問題ともなっているストーカーを撃退致します!!
その他人生相談からどんなお悩みでも解決いたします!!
 直通  090−8505−3086
URL  http://www.h5.dion.ne.jp/~grobal/
メール  hentaimtt@k9.dion.ne.jp
   グローバル探偵事務局 



50 :デフォルトの名無しさん:03/03/26 09:33
質問です。
    _, ._
  ( ゚ Д゚)
  ( つ旦O
  と_)_)

http://gcc.gnu.org/ml/java/2002-12/msg00105.html
を参考にして、libswt.aを作りました。

$ ls
Test.java build.sh* libswt.a swt-win32-2132.dll* swt.jar

$ gcj -mwindows --classpath=./swt.jar --main=Test Test.java -L. -lswt
/cygdrive/c/WINNT/Temp/ccjjEJMB.s: Assembler messages:
/cygdrive/c/WINNT/Temp/ccjjEJMB.s:38: Warning: .stabs: description field '100004' too big, try a different debug format
/cygdrive/c/WINNT/Temp/ccjjEJMB.s:206: Warning: .stabs: description field '10001' too big, try a different debug format


51 :デフォルトの名無しさん:03/03/26 09:33

$ ./a.exe
Exception in thread "main" java.lang.UnsatisfiedLinkError: swt-win32-2132: file not found

と、カレントディレクトリにswt-win32-2132があるにも関わらず、file not found になってしまいます。
%SYSTEM_ROOT%/system32/にDLLを突っ込んでも同じでした。
解決策お願いします。

[環境]
Windows2000sp3
$ uname -a
CYGWIN_NT-5.0 rcl 1.3.22(0.78/3/2) 2003-03-18 09:20 i686 unknown unknown Cygwin
$ gcj --version
gcc (GCC) 3.2 20020927 (prerelease)
Copyright (C) 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


52 :デフォルトの名無しさん:03/03/27 20:18
 

53 :デフォルトの名無しさん:03/04/05 15:26
Cygwin版もMingw版も出力をShift-JISにしないと日本語がまともに表示できない・・・

54 :デフォルトの名無しさん:03/04/05 22:54
>>53
そりはコンソールの表示文字コードの問題かと・・・

55 :デフォルトの名無しさん:03/04/05 23:16
>>50-51
だ、誰かつД`) タスケレ !!

56 :名無しさん@XEmacs:03/04/06 12:31
>>53
mltermかrxvt-ml使えば? euc-jpもutf-8も可。
どっちもcygwinに入っていると思た
http://mlterm.sourceforge.net/
http://www.geocities.co.jp/SiliconValley-Oakland/6833/rxvt/

>>53
console表示はgcjの担当じゃないもんね(w
出力は担当だけども。

57 :53:03/04/09 18:26
環境にあわせてエンコードしてくれるものだと思っていた漏れがバカでした・・・鬱

58 :山崎渉:03/04/17 15:40
(^^)

59 :デフォルトの名無しさん:03/04/28 20:09
保守sage

60 :山崎渉:03/05/28 13:25
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉

61 :デフォルトの名無しさん:03/06/08 04:12
libgcj.dll と libswt.dll の作り方が分かりません。。
dlltool や dllwrap を使ってあれこれやってみたのですが…。

実際に使おうとすると、undefined reference の嵐です。

http://members.tripod.co.jp/usr_vogel/Compiler/Mingw32/DLLMake.html
http://webclub.kcom.ne.jp/ma/colinp/impdef.tar.gz

どなたか、libgcj.a と libswt.a を共有ライブラリにする方法を
教えてください。

62 :デフォルトの名無しさん:03/06/24 00:55
3舗U

63 :デフォルトの名無しさん:03/06/29 13:59
MinGW GCJ 3.3 で コンソールへの日本語出力 と
MS SQL Server JDBC ドライバのコンパイルはできました。

SWT, JDBC, 日本語 がこなせるので GCJ でも
それなりのアプリケーションを構築できるようになりましたね。

64 :デフォルトの名無しさん:03/07/03 19:38
Pure Java なデータベース HSQL をネイティブコードにコンパイルできたよ。
ちゃんと動いているし。


65 :デフォルトの名無しさん:03/07/03 21:25
>>63
GCJ3.3って公式ダウンロードサイトにはなかったので
検索したら↓がひっかかったんだけどこれのこと?
http://www.thisiscool.com/gcc33_mingw.htm

66 :65:03/07/03 21:31
GCJ 3.4もあるみたいなんで早速GCJ 3.4を試してみます

67 :デフォルトの名無しさん:03/07/04 23:29
実行時に必要になるオブジェクトやリソースがリンクされないんだけど…。

public static void main(String[] args) {
Calendar.getInstance();
}

これがエラーになるんだよね。どのカレンダー実装を使うかは
実行時に判断されるため、リソースオブジェクトがリンク時には
リンクされないのだ。

ar x libgcj.a Calendar.o

として、リソースオブジェクトを取り出して、

gcj --main=Hello -o Hello.exe Hello.java Calendar.o

のように直接リソースオブジェクトを指定すれば、正しくリンクされて
きちんと動作する。他にも Input_SJIS.o や Output_SJIS.o などの
文字コードコンバート系 オブジェクトもリンクされないので、
http://www.thisiscool.com/gcc33_mingw.htm にある
バイナリでは、デフォルトでコンソールに日本語を表示することができない。

Input_SJIS.o などをリンクするためには、他から静的に参照されてればいいので、
IOConverter.java などで new Input_SJIS(); などとしておけば良い。
そうすれば、リンク時に Input_SJIS.o が必要だということが分かるから、
ちゃんと Input_SJIS.o がリンクされて日本語が通る。

そのうち、構成しなおした libgcj.a でもアップするか…。

68 :デフォルトの名無しさん:03/07/12 23:55
>>67
+1 参考になる

69 :67:03/07/13 10:33
ttp://webclub.kcom.ne.jp/vc/ryo/libgcj.zip

日本語が通るようにした libgcj.a です。
http://www.thisiscool.com/gcc33_mingw.htm にある
MinGW GCJ 3.3 の libgcj.a と差し替えて使います。

ただし、日本語をソースコードに記述する場合は
文字コードを UTF-8 にしておかないと、gcj にはじかれます。
僕は、UTF-8エディタとして Eclipse を使っています。

70 :山崎 渉:03/07/15 10:14

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

71 :デフォルトの名無しさん:03/07/21 22:38
保守age

72 :山崎 渉:03/08/02 02:27
(^^)

73 :山崎 渉:03/08/15 16:50
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン

74 :デフォルトの名無しさん:03/08/18 19:08
>>797=798
これ分かります?書いたの自分なんですけど。

gcjって使ってる人います?
http://pc2.2ch.net/test/read.cgi/tech/1046627795/50-

75 :デフォルトの名無しさん:03/08/18 19:09
>>74はゴバーク

76 :デフォルトの名無しさん:03/08/18 23:00
MinGW用の libgcj のダイナミックライブラリ(dll)が出ました。
MinGW GCJ の欠点として、ライブラリがスタティックリンクされるため、
生成される実行ファイルが非常に巨大になるという問題がありましたけど、
ダイナミックライブラリが出てきたことで、この問題が解消します。

http://www.thisiscool.net/gcc34-20030802-dll.zip


77 :デフォルトの名無しさん:03/08/18 23:26
>>76
ありがたいっす。

ところで、Windows 用(っつか case sensitive でないプラットフォームの) GCJ は
(case sensitive なプラットフォームで)クロスコンパイルしないとビルドできないのは変わって無いっすか?

78 :デフォルトの名無しさん:03/08/20 19:08
おそらくね。メーリングリスト見てても Windows用GCJをコンパイルしている人は
みんな Linux でクロスコンパイルしてるね。
Cygwin でコンパイルに成功した例は聞いたことないです。

21 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)