【发布时间】:2014-10-21 01:30:03
【问题描述】:
我有一个使用 Eclipse Nsight 编写和编译的 CUDA C++ 项目。我的目标是最终从包含主函数的文件中获得一个可执行文件,然后为项目中的每个类生成一个单独的共享库,而无需在 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 世界中。
【问题讨论】:
-
如果您愿意构建/维护自己的 makefile,您可以从 makefile 启动 nsight EE 项目。确实,Eclipse 和 Visual Studio(“解决方案”)中的多项目特性就是为此而设计的,所以不清楚为什么不使用为这种结构设计的路径。
-
多项目路线有效,这就是我目前正在做的事情,但它有点笨拙,因为我需要每个类都有一个使用我的库的项目。这可能很快就会失控。我认为最好的办法是使用自定义 makefile 路线......哦,好吧。