请教share memory的用法

我是个cuda新手,关于share memory的用法有几点不清楚:

(1)假如我的kernel里要用到多个共享数组,我是否可以向下面这样声明:

shared int A[100][6];

shared int B[20];

shared int C[50];

,但是我好像在有些资料上看到说,同一个kernel里的每个share memory的起始地址都相同,需要计算偏移量,不能像上面那样做,我有些不确定,还请高手多多指教。

(2)我写了一个cuda程序,编译通过,但运行时,出现错误,错误输出为:
1>------ 已启动生成: 项目: CUDA_3SAT, 配置: Release Win32 ------
1>正在链接…
1>cuda_3sat.obj : error LNK2001: 无法解析的外部符号 ___cudaUnregisterFatBinary@4
1>cuda_3sat.obj : error LNK2001: 无法解析的外部符号 _cudaLaunch@4
1>cuda_3sat.obj : error LNK2001: 无法解析的外部符号 _cudaSetupArgument@12
1>cuda_3sat.obj : error LNK2001: 无法解析的外部符号 ___cudaRegisterFunction@40
1>cuda_3sat.obj : error LNK2001: 无法解析的外部符号 ___cudaRegisterFatBinary@4
1>cuda_3sat.obj : error LNK2001: 无法解析的外部符号 _cudaGetErrorString@4
1>cuda_3sat.obj : error LNK2001: 无法解析的外部符号 _cudaMemcpy@16
1>cuda_3sat.obj : error LNK2001: 无法解析的外部符号 _cudaConfigureCall@32
1>cuda_3sat.obj : error LNK2001: 无法解析的外部符号 _cudaMalloc@8
1>cuda_3sat.obj : error LNK2001: 无法解析的外部符号 __imp__cutCheckCmdLineFlag@12
1>cuda_3sat.obj : error LNK2001: 无法解析的外部符号 _cudaFree@4

,我曾尝试单步调试,不行,有人知道出现这种错误的原因吗?