【发布时间】:2011-03-29 23:16:05
【问题描述】:
我正在使用 nVidia 的 CUDA C 进行一些编程。我使用 Visual Studio 2008 作为我的开发环境,并且在某些链接方面遇到了一些麻烦,我想知道是否有人知道修复它的方法或遇到过同样的问题并且可以提供解决方案。
我的程序由 3 个文件组成。 1 个头文件 (stuff.h)、1 个 C 源文件 (stuff.c) 和 1 个 CUDA C 文件 (main.cu)。 (名称是假的,但只是为了说明这一点)。
现在 stuff.h/stuff.c 定义/实现一些我从 main.cu 内部调用的辅助函数。
我正在使用 Visual Studio 2008 和来自 nVidia 的 GPU Computing SDK 的 Cuda.rules,一切都可以正常编译,但是......当将所有文件链接在一起时,它会失败。似乎在 stuff.h 中定义的所有函数(并在 stuff.c 中实现)都没有正确链接,因为它们被标记为“未解析的外部符号”。
可能的原因是什么?我该如何解决?
非常感谢,
ExtremeCoder
好的,所以我已经设法编译了所有内容。看来我所要做的就是将 stuff 实现文件的扩展名从 .c 更改为 .cpp(这意味着编译为 c++ 可以,而编译为 c 则不行!)。
这可能是什么原因造成的?我宁愿将所有内容都保留为 .c 而不是 .cpp(因为这实际上是 C 代码...
任何指针?
【问题讨论】:
标签: visual-studio linker cuda