我完全不熟悉Mac OS X,我购买新MacBook Pro R15 Retina Edition的主要原因是开始学习CUDA API。CUDA编程和xCode
但我不能让我的项目构建。
例如,当我创建一个新的CUDA项目,我去项目属性并进行以下修改:
编译器C/C++/Objective-C的:LLVM GCC 4.2
其他链接国旗:-lcuda,-lcudart
头文件搜索路径:在/ usr /本地/ CUDA /包括
库搜索路径:在/ usr /本地/ CUDA/lib目录
当我开始在我的代码中添加必要的库时,一切运行良好。我的代码没有输入错误。
当我生成项目,我得到的链接错误(路径缩短,消息分解为便于阅读):
Ld /my_test_project/Build/Products/Debug/test normal x86_64 cd /Users/Admin/Documents/test setenv MACOSX_DEPLOYMENT_TARGET 10.7 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
-arch x86_64
-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk
-L/my_test_project/Build/Products/Debug
-L/usr/local/cuda/lib -F/my_test_project/Build/Products/Debug
-filelist /my_test_project/Build/Intermediates/test.build/Debug/test.build/Objects-normal/x86_64/test.LinkFileList
-mmacosx-version-min=10.7
-lcudart
-lcuda
-o /my_test_project/Build/Products/Debug/test
ld: file not found: @rpath/CUDA.framework/Versions/A/CUDA for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
有什么奇怪的是,当我去描述的路径,我看到了CUDA可执行文件。该文件在那里!当我使用使用库的cuComplex.h时,每一个数学表达式(如log,cos,sin等等)都是一个“未定义的变量”。但是,cuComplex.h库里面有库。
驱动程序,SDK和工具包安装得很好,一切都像魅力一样。我可以使SDK示例工作。但我想我错过了一个细节,让整个事情工作。
Hello Pierre-Luc,欢迎来到Stack Overflow。在创建CUDA项目时,是否为与您安装CUDA的体系结构(32位/ 64位)相同的体系结构创建它? – 2012-07-24 14:52:42
嗨!谢谢您的回答 ! 是的,绝对。我已经在x64中安装了CUDA。即使我将属性“架构”设置为32位,并将“有效架构”设置为i386,也会出现相同的内容,但会显示“ld:file not found:@ rpath/CUDA.framework/Versions/A/CUDA for architecture i386” – 2012-07-24 15:05:26
我甚至试过它在终端中编译。我得到完全相同的错误。 – 2012-07-24 15:09:54