Ubuntuとかc++とか覚書
http://w.atwiki.jp/shionakasalaryman/
Ubuntuとかc++とか覚書
ja
2013-06-22T14:41:02+09:00
1371879662
-
H8で遊ぶ
https://w.atwiki.jp/shionakasalaryman/pages/21.html
**開発環境@Windows7
***準備
-秋月電子通商でH8のマイコンボードを買う。
-付属のCDを起動する(どうでもいいが、付属のCDがRじゃなくてRWのような気がするw)。
-インストールマニュアルに従ってCigwinをインストールする。
-環境変数をいじってパスが通るようにする。→[[パスの追加方法@Windows7]]
-環境変数を追加してCygwinのホームフォルダを指定する。→[[Cygwinホームフォルダの設定方法@Windows7]]
***参考
-[[http://monoist.atmarkit.co.jp/mn/articles/1103/31/news004.html]]
2013-06-22T14:41:02+09:00
1371879662
-
インデクサーがうまく動いていない
https://w.atwiki.jp/shionakasalaryman/pages/25.html
EclipseではEnumとか#defineとか関数とかの宣言部分を参照する機能があるみたいです。
例:
#highlight(cpp){
func_関数A();
}
上記のように、func_関数Aという関数をプログラム中で使用しているとします。このとき、「func_関数A」という文字列にマウスカーソルを合わせ、CTRLキーを押しながらクリックすると、関数の宣言部分にジャンプすることができます。
#highlight(cpp){{
void func_関数A(){
printf("関数Aを呼びだしたよ\n");
}
}}
↑こんなふう
こういう宣言へのジャンプ機能をインデクサー(Indexを紐付けするから?)ていうみたいです。
……ところが、めためた開発を進めていると、このCTRLジャンプ機能が使えなくなったりすることがあります。理由はいろいろあるみたいですが、、、
-スペルミス
ありがちですが、スペルミスしてると宣言部へジャンプできません。
-コードが長すぎる
PCのスペックやEclipseのバージョンによって異なるかもしれませんが、あんまりにもコードが長大だとジャンプ機能が機能しなくなるようです(いちおうEclipseはその旨を警告してくれます)。マイPCの場合、256MBのメモリ、EclipseのVerがガリレオで、1ファイル2500stepをこえたあたりでジャンプできなくなりました。分割せいや……って話ですけど……(それよりメモリw)。
-ヘッダが新しくなった
フツーに開発してると、この例が一番多いんじゃないでしょうか。同一のワークスペース内に複数プロジェクトがあり、プロジェクト内のファイルが互いに関連している場合にありがちです。
header.h <- プロジェクトAで作ってる
#highlight(cpp){{
typedef enum EExampleIndex{
ExampleIndex_Invalid =-1, /* 無効値 */
ExampleIndex_Apple = 0, /* りんご */
ExampleIndex_Max , /* 最大値 */
} EExIndex;
}}
test.cpp <- プロジェクトBで作ってる
#highlight(cpp){{
#include "header.h"
EExIndex index = ExampleIndex_Apple;
}}
このときheader.hに、新しいExampleIndex_Bananaを追加します。
header.h <- プロジェクトAで作ってる
#highlight(cpp){{
typedef enum EExampleIndex{
ExampleIndex_Invalid =-1, /* 無効値 */
ExampleIndex_Apple = 0, /* りんご */
ExampleIndex_Banana , /* よしもと */
ExampleIndex_Max , /* 最大値 */
} EExIndex;
}}
で、test.cpp内でさっそくExampleIndex_Bananaを使ってみます。
test.cpp <- プロジェクトBで作ってる
#highlight(cpp){{
#include "header.h"
EExIndex index = ExampleIndex_Apple;
EExIndex index2 = ExampleIndex_Banana;
}}
で、ExampleIndex_Bananaの上にカーソルをあわせてCTRLジャンプを使おうとすると、インデクサーが見つからない的な警告がすみっちょに表示されます。あるある……。そういうときは、プロジェクト・ビューのツリー上(この場合プロジェクトB)で右クリックし、
インデクサー > 再ビルド
してみましょう。たぶんなんとかなります。
2012-11-21T21:55:23+09:00
1353502523
-
Eclipse for linux
https://w.atwiki.jp/shionakasalaryman/pages/17.html
** Eclipse for linux
linux(Ubuntu 10.10)でEclipseを動かしているときのメモです。なお、使用バージョンはGalileoです。
-[[インデクサーがうまく動いていない]]
2012-11-21T21:19:45+09:00
1353500385
-
何を言っているのかわからないよ!
https://w.atwiki.jp/shionakasalaryman/pages/24.html
何を言っているのかわからないよ……。
2012-11-21T21:17:32+09:00
1353500252
-
Cygwinホームフォルダの設定方法@Windows7
https://w.atwiki.jp/shionakasalaryman/pages/23.html
とりあえず方法のみメモ
1.マイコンピュータを右クリックする。
2.プロパティを選択する。
3.左側のメニューからシステムの詳細設定をクリックする。
4.詳細設定タブの「環境変数」をクリックする。
5.ユーザーの環境変数設定BOXの新規作成ボタンをクリックする。
6.下記の通り設定する
>変数名 HOME
>値 /home/username
なお、値に入力するパスはCygwinのルートから見たパス
入れる値は任意だが、/home/username が無難(usernameはyamadaとかtanakaとかshionakaとか入れてください)
2012-06-21T21:36:33+09:00
1340282193
-
pthred_create
https://w.atwiki.jp/shionakasalaryman/pages/19.html
**エラー
[[pthread_create]]は[[スレッド]]の生成を行うらしい。成功の場合は[[戻り値]]0を返す。
失敗した時は[[エラーコード]]を返す。(エラーコードは[[perror]]で出力するアレとは別物)
----
**戻り値
-EPERM
エラーコードの値は(1)。[[パーミッション]]エラーぽい。
あなたはスレッドを起こそうとしているけど、権限がないよというエラー。
これが出た場合、ログイン中のユーザーの権限がスレッド生成に足りてないですよ、
のパターンのようです。参考→[[EPERMが出て困っている人(海外)>http://www.linuxquestions.org/questions/programming-9/return-value-of-pthread_create-428994/]]
Ubuntuユーザーの場合、ありがちなのではないかと思います。
解決策は、スレッドを起こそうとしているアプリが[[CUI]]が[[GUI]]かで変わります。
--CUIの場合
[[sudo]]コマンドを使います。アプリの名前がa.outの場合はこんな感じ
#highlight(){{
$ sudo ./a.out
(passを聞いてくるので入力する)
}}
--GUIの場合
基本のやりかたはCUIと同じで、[[sudo]]の代わりに[[gksudo]]を使います。
gksudoがNot Foundだよ、と言われた場合は、ダウンロードしてきましょう(ええーっ)。
(どうもUbuntuはgksudoは標準装備ぽいけど……)
ちなみに、私の環境では、Eclipseを使って上記CUIアプリをデバッグしたかったので、
#highlight(){{
$ gksudo eclipse
(passを聞いてくるので入力する)
}
}}
とroot権限で[[eclipse]]を立ち上げて、その後a.outのビルド→デバッグという流れでした。
-
2012-06-19T23:04:16+09:00
1340114656
-
メニュー
https://w.atwiki.jp/shionakasalaryman/pages/2.html
**ショートカット
-[[トップページ]]
-[[menu]]
----
**リンク
-[[@wiki>>http://atwiki.jp]]
-[[@wikiご利用ガイド>>http://atwiki.jp/guide/]]
----
**更新履歴
#recent(20)
&link_editmenu(text=ここを編集)
2012-06-17T23:58:02+09:00
1339945082
-
トップページ
https://w.atwiki.jp/shionakasalaryman/pages/1.html
-Linux(Ubuntu)とC++を使った開発のメモです。
**だいたい
-[[menu]]
2012-06-17T23:52:54+09:00
1339944774
-
パスの追加方法@Windows7
https://w.atwiki.jp/shionakasalaryman/pages/22.html
***手順
+スタート > コントロールパネル > システムとセキュリティ > システム
#image(path01.png,width=434,height=351,left)
+左側にあるメニューの中から「システムの詳細設定」をクリック
+「詳細設定タブ」の中にある「環境変数」をクリック
+ユーザー環境変数の中からPATHを選択し、「編集」をクリックする(あっ、ヤダーこの人Fortran使ってるう~)
#image(path02.png,width=458,height=409,left)
+テキストボックスの末尾に文字列「;C:\cygwin\bin」を追加する
+Windowsを再起動させると、パスが通るようになる
※半角セミコロン「;」がそれぞれのパスを区切る役目になっている。
***そもそもパスってなんだ?
・フルパス入力を省略できるようになる
2012-06-17T23:41:50+09:00
1339944110
-
menu
https://w.atwiki.jp/shionakasalaryman/pages/14.html
**メニュー
-[[Ubuntu 10.10]]
-[[C++]]
-[[Eclipse for linux]]
-[[H8で遊ぶ]]
----
//**更新履歴
//#recent(20)
2012-06-17T22:43:25+09:00
1339940605