579
社区成员
发帖
与我相关
我的任务
分享
#ifdef __cplusplus
extern "C"
{
#endif
int add();//cuda函数声明
#ifdef __cplusplus
}
#endif
====================================
CU文件:
#include "interface.h"
int add()
{
return 0;
}
=============================================
cpp调用:
#include "stdio.h"
extern "C"
{
#include "interface.h"
};
int main()
{
add();
return 0;
}
这样处理还是会提示:
error LNK2019: 无法解析的外部符号 _add,该符号在函数 _main 中被引用
1>C:\Users\xia\Desktop\新建文件夹\cuda_cu\Debug\cuda.exe : fatal error LNK1120: 1 个无法解析的外部命令
大神,求解
[/quote]
可以试试把上面所有的extern C语句去掉,看行不行。还不行的话,试试把cu改成.cpp后缀验证一下。你的问题像是工程没有包含所有的文件,或者是编译环境配的有问题。
把所有cpp文件改成.cu,全部都用nvcc编译,也是一个方法。
我自己试了一下,不管加不加extern C,我都能编译过。但我是linux环境,没有vs。#ifdef __cplusplus
extern "C"
{
#endif
int add();//cuda函数声明
#ifdef __cplusplus
}
#endif
====================================
CU文件:
#include "interface.h"
int add()
{
return 0;
}
=============================================
cpp调用:
#include "stdio.h"
extern "C"
{
#include "interface.h"
};
int main()
{
add();
return 0;
}
这样处理还是会提示:
error LNK2019: 无法解析的外部符号 _add,该符号在函数 _main 中被引用
1>C:\Users\xia\Desktop\新建文件夹\cuda_cu\Debug\cuda.exe : fatal error LNK1120: 1 个无法解析的外部命令
大神,求解