[an error occurred while processing this directive]
[an error occurred while processing this directive]
Time to Mac... ?
Wordが使えてUnixのソフトも普通に動く!
こまごましたTips
-
WindowsとかUnixのCtrlキーに相当するのはりんごのマークのキー。(appleキー/コマンドキー)
僕は信者ではないので「コマンドキー」って呼んでます。以下□で表します。
-
アプリケーションの切り替えは□-[tab]。一度切り替え画面を出すと、□-←→でも切り替えできます。
アプリケーション内での切り替えは□-1, 2, 3...など。
-
コピー/ペーストは□-c □-vなど。
X内のアプリケーションには直接copy/pasteできないけど、pbpaste / pbcopyを用いると、クリップボードのデータをやりとりできます。
開発環境の整備
まずはXcodeを入れましょう。これはWindowsのVisual StudioみたいなGUI環境を含んだ開発環境みたい。
僕がいじったのはMacOS X 10.3付属のXcodeですが、ディスク開いていきなりのところにあるインストーラーをダブルクリックすると、一通りソフトが入ったような感じ。
でも、早速コマンドラインからgcc使おうとすると、
$ gcc test.c
ld: can't locate file for: -lcrt1.o
というエラー。
原因だけど、
ここによると、
以下のファイルが/usr/lib/に無いのが原因らしい。
- crt1.o
- gcrt1.o
- dylib1.o
- bundle1.o
これらのファイルですが、XcodeのCDのPackagesフォルダの中にある、MacOSX10.3.0 SDK をインストールすると
/Developer/SDKs/MacOSX10.3.0.sdk/usr/lib/に入って、コピーすると動きました。
(先のページの指示通り)
添付ドキュメント見てると、このCDの中のPackagesのなかのファイル、実は別々に入れないと入らないらしい。
でもgccは3.3が標準だから、2.95は入れなくてもいいらしい。
BSDSDKってのは名前に惹かれるけど、何するかよくわからない。
Fink
MATLAB
MacのMATLABでMEX関数を作ろうと思って、こんなソースを書いた。
#include "/Applications/MATLAB701/extern/include/mex.h"
void mexFunction(int out_args, mxArray *out_argv[], int in_args, mxArray *in_argv[]){
mexPrintf("Hello?\n");
}
mexでコンパイルしたらこんなエラー。
% /Applications/MATLAB701/bin/mex test.cc
ld: symbols names listed in -exported_symbols_list: /Applications/MATLAB701/extern/lib/mac/mexFunction.map not in linked objects
_mexFunction
mex: link of 'test.mexmac' failed.
関数の宣言を以下のように変えると動きました。
void mexFunction(int out_args, mxArray *out_argv[], int in_args, const mxArray *in_argv[]){
[an error occurred while processing this directive]