Компиляция c++, включая корневые библиотеки, с помощью g++

Я пытаюсь скомпилировать программу на С++, которая использует библиотеку TF1 ROOT-фреймворка, с помощью компилятора g++.

Я старался

я уже пробовал

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

Но это просто дает мне ошибку

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

Я очень новичок как в ROOT, так и в C++, поэтому помощь очень ценится!


person TwoStones    schedule 27.06.2019    source источник
comment
Я не знаю ROOT, но могу сказать вам, что 'root-config --cflags glibs' определенно является командой, но -o пытается интерпретировать ее как выходной файл. Чтобы создать исполняемый файл, вам нужно указать имя файла, например -o a.   -  person joshwilsonvu    schedule 27.06.2019
comment
в дополнение к тому, что говорит @jwilson, одинарные кавычки ' просто отмечают строковый литерал и не вызывают программу root-config. (что, по сути, говорит сообщение об ошибке). подпроцессы вызываются с помощью обратных кавычек `или (как в ответе ниже) с долларом и круглыми скобками (часто предпочтительнее stackoverflow.com/questions/9405478 или mywiki.wooledge.org/BashFAQ/082)   -  person pseyfert    schedule 28.06.2019


Ответы (1)


Вы должны проверить с помощью:

g++ a.cpp $(root-config --cflags --glibs) -o a 
person Picaud Vincent    schedule 27.06.2019
comment
Теперь он компилируется. Большое спасибо! Но теперь он просто не показывает мне график, который я создал с помощью f1->Draw(), он просто сообщает мне через bash. Вы тоже знаете, как это исправить? - person TwoStones; 27.06.2019
comment
Пожалуйста :). Извините, я этого не знаю (я не пользователь root). - person Picaud Vincent; 27.06.2019
comment
@TwoStones, вы как-то поддерживаете приложение? Конечно, как только ваша программа завершается (например, возвращаясь из main), все окна закрываются. - person 463035818_is_not_a_number; 27.06.2019
comment
@formerlyknownas_463035818 Вероятно, в этом проблема. Но как сделать так, чтобы программа не возвращалась из main? Извините за такие вопросы, я просто новичок в этом - person TwoStones; 27.06.2019
comment
@TwoStones пытается поставить int dummy; std::cin >> dummy; в конце, затем ждет, пока вы что-нибудь наберете, и нажимаете ввод - person 463035818_is_not_a_number; 27.06.2019
comment
@formerlyknownas_463035818 Хорошо, но мой график по-прежнему не отображается :/ Он просто приостанавливается, пока я что-нибудь не ввожу. - person TwoStones; 27.06.2019
comment
@TwoStone может открыть еще один вопрос - person 463035818_is_not_a_number; 27.06.2019
comment
для использования графики в скомпилированном приложении см. этот пост stackoverflow.com/a/36341590/4588453 - person pseyfert; 28.06.2019