dllexport/dllimport requires external linkage

cuda代码编译cuda项目报错:

dllexport/dllimport requires external linkage

header

extern C LIB_EXPORTS_API void _cdecl func()

source

static void func()

此时func会报出dllexport/dllimport requires external linkage错误,并且最终生成的只有dll文件,没有lib文件。
解决方案:

删除source中函数声明之前的static关键词。
reference:https://stackoverflow.com/questions/9458595/export-function-to-dll-without-class

原文链接:https://blog.csdn.net/u014786409/article/details/123566464

以下内容转自:

c – 导出功能到DLL没有类 - 编程之家

扫描二维码关注公众号,回复: 14536494 查看本文章

有没有办法只导出一个函数到DLL的cos在教程他们总是导出类的东西,

  1. static __declspec(dllexport) double Add(double a,double b);

在上面的类中,上面的语句不会引起任何问题,但没有类ti给出

  1. dllexport/dllimport requires external linkage

解决方法

问题是“静态”限定词.你需要删除它,因为这意味着在这个上下文中是错误的.尝试只是:

  1. __declspec(dllexport) double Add(double a,double b);

这就是编译DLL时你头文件中需要的.现在要从使用该DLL的程序访问该函数,您需要有一个文件

  1. double Add(double a,double b);

如果您使用#ifdefs,则可以将两个目的使用相同的头文件

  1. #ifndef MYDLL_EXPORT
  2. #define MYDLL_EXPORT
  3. #endif
  4. MYDLL_EXPORT double Add(double a,double b);

总结

以上是编程之家为你收集整理的c – 导出功能到DLL没有类全部内容,希望文章能够帮你解决c – 导出功能到DLL没有类所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

猜你喜欢

转载自blog.csdn.net/jacke121/article/details/127356112