我正在编写一个CUDA C ++项目,并使用Eclipse Nsight进行编译。我的目标是从包含main函数的文件中获取可执行文件,然后为项目中的每个类生成单独的共享库,而无需在IDE外部进行编译。我可以通过为每个类创建一个项目,然后在主项目中包含所有这些项目来实现这一点,但我想要一种方法来编写单个Eclipse项目中的所有文件,并最终得到所需的工件。项目结构如下:
ClassA.h
ClassA.cu
ClassB.h
ClassB.cu
main.cpp
我希望编译项目并最终获得以下工件:
ClassA.so
ClassB.so
main.exe
理想情况下,我想知道是否有一种方法可以对特定文件进行分组,并为这组文件设置编译器选项。即。
nvcc ClassA.cu -shared -fPIC -o ClassA.so
nvcc ClassB.cu -shared -fPIC -o ClassB.so
g++ main.cpp -lClassA.so -lClassB.so -o main.exe
我知道这是一个不寻常的请求,但这是一个更大的项目架构的一部分,我试图从emacs和编译shell脚本到IDE的世界。
答案 0 :(得分:2)
选项A:编写并维护自定义生成文件。
选项B:创建3个项目 - exe和两个共享库。