私は実際にLinuxアプリをMacOSXに移植しています。私の問題は、変数にはアクセスできますが、ポインターにはアクセスできないことです。
私はこのように変数を宣言しましたmain.h:
uint64_t test;
uint64_t *test2;
でmylib.h:
extern uint64_t test;
extern uint64_t *test2;
そしてmylib.c私はこの方法で変数にアクセスします:
printf("%llu\n",test);
printf("%llu\n",*test2);
前者printf()は問題ありませんが、後者は私にこのエラーを与えます:
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000008
なぜこれが起こったのか誰かが知っていますか?
私のggcコマンドラインには次のフラグがあります。
gcc -Wall -g -fPIC -c main.c gcc -shared -Wl,-undefined,dynamic_lookup -o mylib.so mylib.o