2015年3月1日日曜日

64bit環境のEclipseのCDT(MinGW)で、32bit実行ファイルを作る。

【MinGW:64bit環境で32bit実行ファイルをコンパイルする方法】

状況:
Eclipseのコンパイラ設定で-m32オプションを付けて、32bit実行ファイルを生成しようとしたが、コンパイルは通る(.oファイルは出来る)が、リンクでエラーになってしまう。

コンパイルオプション -m32
『i386 architecture of input file `src\test_c.o' is incompatible with i386:x86-64 output』


コンパイルオプションとリンカオプション -m32
『cannot find -ladvapi32』
『skipping incompatible h:/pleiades/eclipse/mingw/bin/.』



原因考察:
ライブラリのパス設定ミスかと思ったが、そうではなくて32bit版libが無いためだった。(もちろん、たとえ32bit版libがあっても64bitリンカが32bitリンク出来ない可能性もある、、、)

対応考察:
MinGWの32bit版をダウンロードして、そこにある32bit版libにパスを通すなりコピーしようと思った。

対応1:とりあえず32bit実行ファイル生成可能に
MinGWの32bit版をインストール(zip版なので解凍しただけ)した。そしてその32bit版でコンパイルしてみた。無事、32bitの実行ファイルが出来て実行できた。




対応2:Eclipseで使える様にする。
さてその32bit版libにパスを通そうとEcpilseの設定を開いたが、そこで『MINGW_HOMEだけ変えて、この32bit版MinGWでコンパイルすればいいんじゃね?』と思ったので、MINGW_HOMEに32bit版MinGWのパスを設定しコンパイルしてみた。無事、32bitの実行ファイルが出来て実行できた。





これで解決。


2015年2月28日土曜日

格安で自作PCを組みたい(AMD Athlon5350/5150,Sempron3850/2650 ,Socket FS1b/AM1,,,Raspberry Pi)

格安で自作PCを組みたいのです。

現在使っているパソコン(HP Pavilion g6-1317AX B3J81PA-AAAA,15インチノートPC)の、キーボードの調子が悪くなってきた("]"キー連打状態になる)ので、そろそろ買い替え時かなと思ってます。

もともと私は自作派で過去にいろいろ組んできました。自作傾向は”一点豪華(?)主義”でして、なんらかを出来るだけ追求して組んでました。(格安でSCSIボード三~四枚挿してHDてんこ盛りマシンとか、できるだけ安く3Dゲームマシンとか、とにかく安く4コアマシンとか、、、『安く』が必ずつくのがアレですが…)

今回は、『とにかく安いマシン でも普通に使えるよ』を目標に組んでみたいと思います、いえ思っていました。ええ、そう思っていたのですが、結局はメーカー製パソコンを買いました。理由は安かったからなんです。現在私は手持ちのPCパーツをほとんど持っていないので、自作だと高くついてしまうのです、で、結局メーカ製の方が安く済んだのです。(現在のメインマシンがノートなのでパーツ使いまわしがメモリとHDDだけになるので、、、デスクトップならかなり使いまわせたのですが……)次回買い替える時にはこのメーカー製PCをばらしながら自作の道に戻ろうと思います。


で、安いマシン自作のために、かなりいろいろ調べたりしたので、ここにその情報メモを記しておきます。題して安いPC自作検討情報です。


普通にWindowsPCで検討

最初に値段に一番関わり合いの大きい、CPU+マザーボードを考えます。

【Intel CPU(BayTrail-D, CPUonboardMotherboard TDP10W)】
Celeron J1800/J1750 (2core 2thread) マザーボード込み 8,000円位
Celeron J1900/J1850 (4core 4thread) マザーボード込み10,000円位
Pentium J2900/J2850(4core 4thread) マザーボード込み15,000円位

【AMD CPU(Kabini APU, Socket FS1b/AM1 TDP25W)】
Sempron2650    (2-core)  マザーボード4000円と合わせて 8,000円位
Sempron3850    (4-core)  マザーボード4000円と合わせて 8,000円位
Athlon5150       (4-core)  マザーボード4000円と合わせて 9,000円位
Athlon5350       (4-core)  マザーボード4000円と合わせて12,000円位

うーん、低消費電力ならIntelでグラフィック性能重視ならAMDでしょうかね。Celeron J1900かAthlon5150あたりがいいんじゃないでしょうか? その他必要なパーツが使いまわし出来れば10,000円で新しいマシンが出来ます。(メモリについては、IntelのJシリーズはSO-DIMM-LでAMDはDIMMなので使いまわし可能か要確認です)
まあ、その他パーツを新規で購入したとしても、メモリ4GやHDD/SDD、電源、ケース、ディスプレイ、キーボード、マウス、OSと、、、50,000円以下で組んでそれにWindows代金で60,000円近いかなぁ。
つまり  5万円といったところ。


で、とにかくテキストWeb見れれば良いのなら、、、
Raspberry Pi があります!

Raspberry Pi Model A     25ドル
Raspberry Pi Model A+   20ドル   <<僕的オススメ!
Raspberry Pi Model B     35ドル
Raspberry Pi Model B+   35ドル
Raspberry Pi 2 Model B  35ドル   <<僕的オススメ!

これに、microSDカード、ACアダプター、ディスプレイで、
ここは良いインターネットですね 出来ます!

ディスプレイ代+1万円 で可能です!



私は、実際はメーカー製パソコンを買いましたが、、、そのうち、上に書いたマシン作成にチャレンジしたいと思っています。(ちなみに購入したメーカー製パソコンは、Core i7 で フルHD液晶付いて、込み込み8万円だったです)


2015年2月15日日曜日

Eclipse CDT MinGW (libstdc++-6.dll libgcc_s_sjlj.dll がないため...エラー)

パソコン買いました。
i7-4790(Quadcore 8threads)の優れものです(^^) わくわくです。

さて、新規PCの環境設定ですが『元々あるPCも使いつつ、必要なものだけ少しづつ』って感じでやっています。先日EclipseCDTを入れました。(入れるって言ってもEclipseCDTは新規に新しくコピーするだけ、既存のプロジェクトの移動はパス設定を整えるだけですが。)
んで、この際だからluna(Eclipse4.4)にして、あれをこうして、それもこうする、とかやったのですが、C++プロジェクトでビルドしたEXEが実行時エラーを吐きやがります。


Eclipseから実行しただけだと、上記のエラーダイアログだけなので、
直接コンソール(cmd.exe)で実行してみる。


ああ、実行時必要DLLのパスが通ってないのね、、、
ってかそんなDLL無しで動くようにしたいと強くキボンヌ...
スタティックリンクしましょう。
MinGWでC++のEXEが
    『libstdc++-6.dll libgcc_s_sjlj.dll がないため...エラー』
を出す場合、

Linkerのオプションに
    -static-libstdc++
    -static-libgcc
を追加しましょう。

これで解決。

2015年1月15日木曜日

電源不要なシンプルな電話機、無音着信出来るといいなぁ

自宅のNet回線を変えました。
光からADSL(ホワイトBB)に、料金も安くなり さらにスマホ割でお得になりました。
で、電話機も買い換えようと思い 出来たらシンプルでACアダプターとか不要で、着信音がOFF(無音)に出来て、、、
うーん、けっこう迷うですね……

パイオニアのTF-12-Wは、呼び出し音量が 大小切の三段階で無音着信が出来ますし、着信時にランプが点灯するので、、、これにしようかなぁ。

pioneer TF-12-W
メーカーHP
取扱説明書PDF







2015年1月6日火曜日

eclipseのクラスパス設定(.classpath)の編集


eclipseのクラスパス設定(.classpath)の編集

eclipseのクラスパス設定(.classpath)ですが、外部のパッケージ・ライブラリ等のパスは、絶対パスで記載されていたりします。
そのままでも問題はありませんが、プロジェクトやワークスペースをコピーして別のPCに持って行くときに困るかもしれません。
.classpathを直接編集して、相対パスに変更しておけばその心配もありません。


下記のように、『..』とか使って相対パス指定にします。
classpathentry kind="lib" path="../../lib/lib.jar

2015年1月5日月曜日

eclipseのプロジェクト設定(.project)の編集


eclipseのプロジェクト設定(.project)の編集

eclipseのプロジェクトエクスプローラーには、いろんな場所のフォルダーを表示出来ます。
もちろんプロジェクトディレクトリ外のフォルダーも表示出来ます。
説明テキストとかメモテキストとかを置いてあるフォルダーを表示しておくと便利です。
作り方は新規の場合、プロジェクトエクスプローラーでプロジェクトを選択して右クリック-新規-フォルダーです。
既存のフォルダを追加する場合は、プロジェクトエクスプローラーでプロジェクトを選択して右クリック-インポート-一般-ファイルシステムあたりかな。

ただ僕の場合、
(過去に、プロジェクトフォルダ下にある既存のフォルダの指定が出来なかったり、相対パス指定するつもりが絶対パスになってしまったり 過去に少しメンドクサイ事があったので、、、)
.projectファイルを直接編集する事が多いです。
だいたい下記のような感じで.projectに追加してます。
(ちなみに、%は%25で、{は%7Bで、}は%7Dです。)


  <linkedResources>
    <link>
      <name>out</name>
      <type>2</type>
      <locationURI>$%257BPARENT-2-PROJECT_LOC%257D/Test01/Test01/out</locationURI>
    </link>
    <link>
      <name>readme</name>
      <type>2</type>
      <locationURI>$%7BPARENT-2-PROJECT_LOC%7D/readme</locationURI>
    </link>
    <link>
      <name>readme/Test01_readme.txt</name>
      <type>1</type>
      <locationURI>$%257BPARENT-2-PROJECT_LOC%257D/Test01_readme.txt</locationURI>
    </link>
  </linkedResources>
</projectDescription>

2015年1月4日日曜日

eclipseプラグイン追加後の再起動


eclipseプラグイン追加後の再起動

プラグインを追加したら、
「-clean」オプションをつけて再起動する。
( eclipse -clean )