我有一个使用自动工具编译的项目,直到本周才需要使用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
。例如以下空运行:
产生: