string source =@"\343\201\213\343\201\247\343\201\260";
こんなやつを変換
string source =@"\343\201\213\343\201\247\343\201\260";
こんなやつを変換
/Users/ユーザ名/Library/Developer/Xamarin/android-sdk-macosx
ここにある。
UnityでDLLを使う UnityでDLLを使う | TVML
error: unknown type name '__declspec'
のエラー。
Macというかgcc
では__attribute__
なの?
__declspec(dllexport)
を単純に
__attribute__(dllexport)
置き換え。
すると
error: expected '(' after '('
(
を二重にしたw
__attribute__((dllexport))
ここ見る c++ - GCC (ARM) equivalent to __declspec(dllexport) - Stack Overflow
おそらくどっちか?
#define idaman EXTERNC __attribute__((visibility("default"))) #define ida_local __attribute__((visibility("hidden")))
default
の方にした。
こうではない
g++ -shared -std=c++11 -Iinclude Source.cpp ../mruby/build/host/lib/libmruby.a -o mruby-sample.dll
これ
g++ -shared -std=c++11 -Iinclude Source.cpp ../mruby/build/host/lib/libmruby.a -dynamiclib -fPIC -o mruby.dylib
g++ -shared -std=c++11 -Iinclude Source.cpp ../mruby/build/host/lib/libmruby .a -dynamiclib -arch x86_64 -o mruby.bundle
これmruby.bundle
をPlugins
に入れる。
Unityを再起動しないとミスったときにおかしくなる。
mrubyをダウンロードした。
mruby-1.2.0.tar.gz
tar zxvf mruby-1.2.0.tar.gz
cd mruby ruby minirake
sample.cpp作る
#include <stdlib.h> #include <stdio.h> #include "mruby.h" #include "mruby/compile.h" int main() { auto mrb = mrb_open(); auto ai = mrb_gc_arena_save(mrb); mrb_load_string(mrb, "5.times.each {|i| p i * i }"); mrb_gc_arena_restore(mrb, ai); mrb_close(mrb); return 0; }
g++ -std=c++11 -Iinclude sample.cpp ../mruby/build/host/lib/libmruby.a
../mruby/build/host/lib/libmruby.a
がないと
Undefined symbols for architecture x86_64: "_mrb_close", referenced from: _main in sample-20efc4.o "_mrb_gc_arena_restore", referenced from: _main in sample-20efc4.o "_mrb_gc_arena_save", referenced from: _main in sample-20efc4.o "_mrb_load_string", referenced from: _main in sample-20efc4.o "_mrb_open", referenced from: _main in sample-20efc4.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)