我有一个使用自动工具编译的项目,直到本周才需要使用OpenMP和MPI支持进行编译。现在,我添加了一个CUDA内核,希望在某些情况下可以将其编译为代码。代码的编译可以,并且创建了所有目标文件。将对象链接到可执行文件时,使用以下命令:



依次生成follwong链接命令



这将产生以下错误,因为-std = c++ 0x和-fopenmp是由CUDA编译器而不是mpicxx编译器解释的。

nvcc fatal   : Value 'c++0x' is not defined for option 'std'

如果可以帮助我可以发布我的configure.ac,但现在想使问题保持​​简洁。

因此,我的问题是,可以将-Xcompiler标志转发给mpicxx编译器,而不是由libtool剥离它们吗?

最佳答案

一种方法是使用-Xcompiler=-std=c++0x-Xcompiler=-fopenmp-Wc,直接传递到编译器,因此-Xcompiler不会剥离libtool。例如以下空运行:



产生:

10-08 07:56