ホーム » Mac
「Mac」カテゴリーアーカイブ
g++ DrawLog.cpp
今まで xcode を利用していたが,他の PC からビルドするために…
コードは次の様なもの.ほとんどの動作はi_DrawLG.hxx 内に.
// カレントのファイルを成型してファイルに出力
#include “i_DrawLg.hxx”
#include <iostream>
int _tmain (int argc,TCHAR* argv[])
{
_tsetlocale(LC_ALL,_T(“”)) ;
{
std::tout << ::GetCWD() << std::endl ;
}
tstring logPath = _T("./") ;
#ifdef _WIN32
logPath = ::Get_i_Tools_tmp() ;
#endif
::PL_DrawLog(logPath) ;
return 0 ;
}
//———————–
#include "MessBar.cxx"
次の様に -I で指定すれば,include が機能するのは知っていたが…
g++ DrawLog.cpp -I/Users/…/__CPR_ -I/Users/…/__Iwao
環境変数を利用する様に
export CPATH=/Users/…/__CPR_
export CPATH=/Users/…/__Iwao:$CPATH
これらをスクリプトファイルに登録.
呼出し元にも反映させるには bash env.sh ではなく
source env.sh とする必要があるらしい.
sh ファイルを MIFES で編集していて,微妙にうまく動作していない.
原因は改行コードで,「LF」で保存.
これで g++ DrawLog.cpp としてビルドできる様になった.
実行すると,Segmentation fault: 11.
xcode でもテストしてなかったのでデバッグすると,
readdir で EXC_BAD_ACCESS .
ここは _WIN32 では通らないのでデバッグが不十分な部分.
原因は,与えているファイルが
ディレクトリでなかった.
ファイルが存在していなかったこと.
コードを修正して OK .
Web + exe
最終的に目指したい所は,
参考にさせてもらったのは,
第3回 極めてシンプルなCGIを体験する.
C:\...\Iwao>"C:\...\testCGI2\DmpSVG.exe"
Content-Type: text/html
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" >
<rect x="15" y="10" width="70" height="40" stroke="blue" fill="white" />
</svg>
C:\...\Iwao>
mac で,
先ず,php から ls の呼び出し.
exec_ls.php
<?php
system('ls') ;
ターミナルで実行(php exec_ls.php)すると,
php から a.out の呼び出し.
main.cpp
#include <iostream>
int main() {
std::cout << "hello c++ php" << std::endl ;
return 0 ;
}
g++ main.cpp としてコンパイル.
exec.php
<?php
system('./a.out') ;
ターミナルから php -S 127.0.0.1:8000 などとしておくと,
DS115j で,
php から ls の呼び出しまでは同様.
Iwao@DS115j:~/www/T_php/temp/test$
Iwao@DS115j:~/www/T_php/temp/test$ ls
exec_ls.php index.php main.cpp
Iwao@DS115j:~/www/T_php/temp/test$
Iwao@DS115j:~/www/T_php/temp/test$ php exec_ls.php
exec_ls.php
index.php
main.cpp
Iwao@DS115j:~/www/T_php/temp/test$
Iwao@DS115j:~/www/T_php/temp/test$
Mavericks インストール
OS X Mavericks をインストール.
ダウンロード,再起動後のインストール時間は 44 分?の表示だったが,...
途中で見ると,2 時間 14 分とか,1 時間 36 分とか,...
1 分未満の表示になってから,しばらく変化がなかった.5 分位?
前回の Mountain Lion と同様 1 時間程度.
さらに再起動後 15 分程度.
VirtualBox を起動すると,
仮想マシン”WinXP-Dev”のセッションを開けませんでした。
Failed to open/create the internal network ‘HostInterfaceNetworking-en1’
(VERR_SUPDRV_COMPONENT_NOT_FOUND).
終了コード : NS_ERROR_FAILURE (0x80004005)
コンポーネント: Console
インターフェース: IConsole {db7ab4ca-2a3f-4183-9243-c1208da92392}
Mavericks と VirtualBox で検索すると,
VirtualBox を再インストールすれば良いとのこと.
ダウンロードフォルダにあった,VirtualBox-4.2.18-88780-OSX.dmp のインストールでうまくいった.
vdi をコピーしたいと思い,調べると VBoxManage clonehd が見つかった.
が,ちょっと面倒なのでさらに調べると,Virtual Box マネージャーにクローンがあった.
使ってみると,MAC アドレスがぶつかってしまってる.
ネットワークの設定で「高度」の中に,更新する機能があった.
2013/10/28 追記
OS のアップデート,AP の変更などいろいろあり,どれが原因か突き止められてないが,
ゲストと他の PC との接続などが安定してない.ホストとの接続もできない状態にもなった.
前回と同様に VirtualBox を再インストールすると意図した動作(他の PC が見える)にはなる.
それと,ちょっと別の困った現象.
マウス(Magic Mouse)の動作が安定しない?
ドロップダウンリストなどの時に意図しないものに切替ってしまう.
Fedora をインストール
Mac の VirtualBox に Fedora をインストール.
最初,WIn 7 の VirtualBox に Ubuntu をインストールした.
インストール直後は動作していたが,そのうち起動時にブルースクリーンとなることがあった.
以前 Android 環境を入れた時もそうだったので,VirtualBox との相性か?
ホームにできるフォルダが日本語名となるため検索すると,
ホームディレクトリのフォルダ名を日本語から英語に変更するには
2013/06/26
環境を作成した時点では,うまく Windows Network が見えなかったが,…
今開いてみたら見える様になっていた.
2013/06/27
デスクトップをカスタマイズしようと,ここを参考に GNOME Shell を有効に,…
インストール後,再起動して,「GNOME Shell 拡張機能」の場所がわからなかったので,
「アクティビティ」-「アプリケーションの表示」-「Tweak Tool」.
「検索ワードを入力…」に “Tool” と入力するか,「アクセサリ」で絞った方がはやいかも.
Mountain Lion ダウンロードとインストール
コンテンツコードは先日取得してあったので,ダウンロードを開始してみた.
30 分位だったか?
ダウンロードが終わるとすぐ,インストールの開始画面となり,そこで止めている状態.
Install OS X Mountain Lion.app のバックアップを取ろうと思って気が付いたことが,
~.app て,Windows などから見るとフォルダだった?
インストール開始直後,35 分位の表示だったと思うが,結局 1 時間程かかった.
2012/09/02 追記
Xcode 4.3 を利用しようとすると,
4.4 が必要なのか?
4.4 にアップデートして,先週やってた exe がビルド,実行できることは確認した.
Objective-C
買った本を参考にしながら,NSArray を使用.
NSArray* ary = [NSArray arrayWithObject:[…],[…],…,nil] ;
と入力して,複数の要素を指定しているという様なエラー.
よーく確認すると,本の方は arrayWithObjects と最後に s が付いた複数指定のタイプ.
Xcode が補完してくれるのはいいが,間違って選択してエラーになると,原因を見つけるのがちょっと大変?
他にもタイマの利用で,タイマ処理関数名の直後の ” : ” も抜けていた.
[NSTimer scheduledTimerWithTimeInterval:0.05 target:self
selector:@selector(moveLabel:) userInfo:nil repeats:YES ] ;
Objective-C から C++ の呼び出し
先日作成した MemStat.hxx を「iOS」−「Single View Application」から利用してみた.
ViewController.m の拡張子を mm に変更.
ボタンと UITextView を貼付けて,変数を定義,ボタンの Action を追加.
以下はそれに対して,C++ の呼出しを加えたコード.
// ViewController.mm
#import “ViewController.h”
#include “MemStat.hxx” // これでいいの?
@interface ViewController ()
@end
@implementation ViewController
@synthesize TextView;
– (void)viewDidLoad
{
[super viewDidLoad];
{
MemoryStatus ms ;
NSString* str = [[NSString alloc]initWithFormat:@”%8.2f MB / %8.2f MB \n”,
ms.GetPhysFree()/1024/1024.,ms.GetPhysTotal()/1024/1024. ] ;
TextView.text = str ;
}
}
– (void)viewDidUnload
{
[self setTextView:nil];
[super viewDidUnload];
}
– (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
– (IBAction)Refresh:(id)sender {
{
MemoryStatus ms ;
NSString* str = [[NSString alloc]initWithFormat:@”%8.2f MB / %8.2f MB \n”,
ms.GetPhysFree()/1024/1024.,ms.GetPhysTotal()/1024/1024. ] ;
TextView.text = [TextView.text stringByAppendingString:str ] ;
}
}
@end
Magic Mouse 追加
「マルチタッチトラックパッド」は良く出来ているが,マウスカーソルの位置を操作するのがなかなか慣れず,Windows で使用している 5 ボタンマウスを USB 接続して凌いでた.
Magic Mouse の存在を知らなかったわけではなく,ちょっと投資が出来なかったのです.
それでやっと,Apple のショップで触って,購入しました.
接続にちょっとかかりましたが,…
(付属のマニュアルを読まないで接続しようとしたので.私みたいな老眼には,ちょっときついです)
接続できると,やっぱいいです.
キーボードはどうしたものか?
定義済みマクロ
__GNUC__
__APPLE_CC__
Hello, World!
以下のコードで確認.
#include <iostream>
int main(int argc, const char * argv[])
{
#if defined(__GNUC__)
printf(“__GNUC__\n”) ;
#endif
#if defined(__APPLE_CPP__)
printf(“__APPLE_CPP__\n”) ;
#endif
#if defined(__APPLE_CC__)
printf(“__APPLE_CC__\n”) ;
#endif
#if defined(__MACOS_CLASSIC__)
printf(“__MACOS_CLASSIC__\n”) ;
#endif
// insert code here…
std::cout << “Hello, World!\n”;
return 0;
}
???/MacOSX.platform/Developer/SDKs/MaxOSX10.7.sdk/usr/include/TargetConditionals.h より
cpp -dM /dev/null
utf-8 だと…
Xcode でのファイルが UTF-8 だったのでそれを含む文字列での動作を調べてみた.
データは半角”abc”,全角”ABC”,半角”アイウ”,全角”アイウ”
Xcode で以下のコードを書いたので,このソースファイルの形式は,UTF-8.
#include <iostream>
int main(int argc, const char * argv[])
{
char abc[] = “abc” ;
std::cout << strlen(abc) << “\t” << abc << “\n” ;
char ABC[] = “ABC” ;
std::cout << strlen(ABC) << “\t” << ABC << “\n” ;
char aiu[] = “アイウ” ;
std::cout << strlen(aiu) << “\t” << aiu << “\n” ;
char AIU[] = “アイウ” ;
std::cout << strlen(AIU) << “\t” << AIU << “\n” ;
return 0;
}
Xcode
3 abc
9 ABC
9 アイウ
9 アイウ
VC 6 MBCS
3 abc
6 ABC
3 アイウ
6 アイウ
VC 6 UNICODE
3 abc
3 ABC
3 アイウ
3 アイウ
VC 6 でのコードは,tchar.h を利用して以下の様に書き直している.
また,ファイル形式はシフトJIS.
#include <iostream>
#include <tchar.h>
#ifdef _UNICODE
#define tcout wcout
#else
#define tcout cout
#endif
int _tmain(int argc, const TCHAR * argv[])
{
_tsetlocale(LC_ALL, _T(“”)) ;
TCHAR abc[] = _T(“abc”) ;
std::tcout << _tcslen(abc) << _T(“\t”) << abc << _T(“\n”) ;
TCHAR ABC[] = _T(“ABC”) ;
std::tcout << _tcslen(ABC) << _T(“\t”) << ABC << _T(“\n”) ;
TCHAR aiu[] = _T(“アイウ”) ;
std::tcout << _tcslen(aiu) << _T(“\t”) << aiu << _T(“\n”) ;
TCHAR AIU[] = _T(“アイウ”) ;
std::tcout << _tcslen(AIU) << _T(“\t”) << AIU << _T(“\n”) ;
return 0;
}
Mac で Windows の…
Windows の「タスクマネージャ」の様なの.
「アプリケーション」ー「ユーティリティ」ー「アクティビティモニタ」.
Print Screen
command+shift+3 , 4 , control+3
VC 6 では,シフトJIS のみの扱い
詳しく調べてはないが,Xcode は UTF-8
ビルドなどでも,コード内のシフトJIS 部分が正しく処理されない.
コード部分では 0x7f までの範囲とすべきか?
他の設定変更した部分
「ことえり環境設定」ー「入力文字」を使いやすい様に設定.
「システム環境設定」ー「言語とテキスト」ー「入力ソース」ー「半角カタカナ」にチェック.