ホーム » Mac

Mac」カテゴリーアーカイブ

2024年11月
 12
3456789
10111213141516
17181920212223
24252627282930

カテゴリー

アーカイブ

ブログ統計情報

  • 99,338 アクセス


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 .

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

Web + exe

最終的に目指したい所は,
IIS+PHP 環境で 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 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 から a.out の呼び出し
ターミナルから php -S 127.0.0.1:8000 などとしておくと,
php から a.out の呼び出し


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$

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

OS X 10.9.2

それ程困っていたわけではないが,Mavericks に上げてから「メール」で変な現象があった.
「日付で並べ替え」,「最も新しいメッセージを最上位」としているのに,
  一部のメールが下の方になる.
  そのリストに対応するメールの内容が合っていない.


OS X のアップデートがあり,その内容で該当しそうな項目がある.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

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)の動作が安定しない?
ドロップダウンリストなどの時に意図しないものに切替ってしまう.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

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” と入力するか,「アクセサリ」で絞った方がはやいかも.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

Mountain Lion ダウンロードとインストール

コンテンツコードは先日取得してあったので,ダウンロードを開始してみた.
OS X 10.8 ダウンロード
30 分位だったか?


ダウンロードが終わるとすぐ,インストールの開始画面となり,そこで止めている状態
OS X 10.8 インストール開始
Install OS X Mountain Lion.app のバックアップを取ろうと思って気が付いたことが,
~.app て,Windows などから見るとフォルダだった?


インストール開始直後,35 分位の表示だったと思うが,結局 1 時間程かかった.
OS X 10.8 インストール終了


2012/09/02 追記
Xcode 4.3 を利用しようとすると,
Xcode 4.4
4.4 が必要なのか?


4.4 にアップデートして,先週やってた exe がビルド,実行できることは確認した.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

Objective-C

買った本を参考にしながら,NSArray を使用.
NSArray* ary = [NSArray arrayWithObject:[…],[…],…,nil] ;
と入力して,複数の要素を指定しているという様なエラー.
よーく確認すると,本の方は arrayWithObjects と最後に s が付いた複数指定のタイプ.
Xcode が補完してくれるのはいいが,間違って選択してエラーになると,原因を見つけるのがちょっと大変?


他にもタイマの利用で,タイマ処理関数名の直後の ” : ” も抜けていた.
  [NSTimer scheduledTimerWithTimeInterval:0.05 target:self
     selector:@selector(moveLabel:) userInfo:nil repeats:YES ] ;


Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

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
 

メモリ状態の画面のコピー

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

Magic Mouse 追加

「マルチタッチトラックパッド」は良く出来ているが,マウスカーソルの位置を操作するのがなかなか慣れず,Windows で使用している 5 ボタンマウスを USB 接続して凌いでた.
Magic Mouse の存在を知らなかったわけではなく,ちょっと投資が出来なかったのです.

それでやっと,Apple のショップで触って,購入しました.
接続にちょっとかかりましたが,…
(付属のマニュアルを読まないで接続しようとしたので.私みたいな老眼には,ちょっときついです)
接続できると,やっぱいいです.

キーボードはどうしたものか?

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

定義済みマクロ

__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

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

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;
  }

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

Mac で Windows の…

Windows の「タスクマネージャ」の様なの.
  「アプリケーション」ー「ユーティリティ」ー「アクティビティモニタ」.
Print Screen
  command+shift+3 , 4 , control+3


VC 6 では,シフトJIS のみの扱い
  詳しく調べてはないが,Xcode は UTF-8
  ビルドなどでも,コード内のシフトJIS 部分が正しく処理されない.
  コード部分では 0x7f までの範囲とすべきか?


他の設定変更した部分
  「ことえり環境設定」ー「入力文字」を使いやすい様に設定.
  「システム環境設定」ー「言語とテキスト」ー「入力ソース」ー「半角カタカナ」にチェック.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.