c++ - 如何在ROOT下编译多个文件

标签 c++ compilation root-framework

我写了一个 C++ 程序(带有 main.cpp 以及各种头文件和实现文件),可以在 g++ 下正常编译。现在我试图在 Cern 的 ROOT 库中编译它,但我不知道如何,因为我知道如何在 ROOT 中编译文件的唯一方法是使用 .L main.cpp .

如何在 ROOT 中包含多个文件?

最佳答案

使用 ROOT 的最可靠方法(至少在历史上和当前)是忽略解释器,而不是为了最简单的探索,并针对 ROOT 库显式编译 C++ 程序。例如,使用

g++ MySource.cc `root-config --libs --cflags` -o foo

从单个源文件编译可执行文件“foo”。有关该帮助程序脚本的更多信息,请运行“root-config --help”。

多文件程序/库没有什么特别之处,只要您提供所需的参数以指向 ROOT 库和 header (并且这些库在运行时在 LD_LIBRARY_PATH 中可用。)如果需要,标准 C++ 指南将解释该步骤。您也可以安全地将它放入 makefile 中。

在我看来,这比在 CINT 解释器中使用 .L 等命令更容易也更可靠。上次我尝试时,ACLiC 实际上是针对指定源文件的临时(和损坏的)版本进行编译,因此来自编译器的任何错误消息都几乎没有用!

关于c++ - 如何在ROOT下编译多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7856665/

相关文章:

c++ - 如何将 vector<char*> 转换为 vector<string>/string

c++ - 逻辑帮助 : comparing values and taking the smallest distance, 同时从 "available to compare"列表中删除它

c++ - 根 CERN 导出数据 : export a specific data type

c++ - 状态机 : Use transition matrix instead of nested switch cases C++

c++ - 如何使输入成为我的代码的一部分?

c++ - 错误 : invalid conversion from 'const int*' to 'int*'

java - 编译时无需将项目文件放在类路径下

java - Titanium Mobile 是否将 Javascript 转换为 native Java 或 Objective C 编译代码?

functional-programming - 重载函数的 Hindley-Milner 类型推断

c++ - 如何使用堆栈跟踪来确定崩溃原因?