【问题标题】:Compiling a c++ including root libraries with g++使用 g++ 编译包含根库的 c++
【发布时间】:2019-11-09 20:18:09
【问题描述】:

我正在尝试用 g++ 编译器编译一个 c++ 程序,它使用 ROOT 框架的 TF1 库。

我试过了

我已经试过了

g++ a.cpp -o 'root-config --cflags --glibs' 

但这只是给了我错误

g++: error: no such file or directory: 'root-config --cflags --glibs'

我对 ROOT 和 C++ 都很陌生,因此非常感谢您的帮助!

【问题讨论】:

  • 我不知道 ROOT 但我可以告诉你 'root-config --cflags glibs' 绝对是一个命令,但 -o 试图将其解释为输出文件。要生成可执行文件,您必须指定一个文件名,如 -o a
  • 除了@jwilson 所说的,单引号' 只是标记一个字符串文字,不会调用root-config 程序。 (这基本上是错误消息所说的)。子进程用反引号`调用,或者(如下面的答案)用美元和括号(通常最好stackoverflow.com/questions/9405478mywiki.wooledge.org/BashFAQ/082

标签: c++ c++11 g++ root-framework


【解决方案1】:

您必须检查:

g++ a.cpp $(root-config --cflags --glibs) -o a 

【讨论】:

  • 现在可以编译了。非常感谢!但现在它不会显示我使用f1->Draw() 创建的图表,它只是通过 bash 告诉我。你也知道怎么解决吗?
  • 不客气 :)。抱歉,我不知道(我不是 root 用户)。
  • @TwoStones 您是否以某种方式使应用程序保持活力?当然,一旦您的程序终止(例如通过从main 返回),任何窗口都会关闭
  • @foreknownas_463035818 这可能是问题所在。但是如何防止程序从main 返回?抱歉这些问题,我对此很陌生
  • 要在编译的应用程序中使用图形,请参阅这篇文章stackoverflow.com/a/36341590/4588453
猜你喜欢
  • 2010-12-05
  • 2016-02-28
  • 2020-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-08
相关资源
最近更新 更多