私は実際に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