Как создать - в поддержке gprof программе, созданной с SCons?

Поздравления,

Вот мой файл SConstruct:

env = Environment()
env.Append(CCFLAGS=['-g','-pg'])
env.Program(target='program1', source= ['program1.c'])

Также вот вывод компиляции:

scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
gcc -o program1.o -c -g -pg program1.c
gcc -o program1 program1.o
scons: done building targets.

Поскольку Вы видите, что я передаю "-pg" опцию среде сборки. После того, как я создаю, я запускаю программу для генерации "gmon.out", но это не производится.

Кто-либо может подтвердить эту проблему? или имеет решение?

Спасибо.

Обновление:

Благодаря совету, данному здесь, обновленная работа, файл SConstruct следующие. Компоновщик требует флага, таким образом, для передачи его через сканирования опция "LINKFLAGS" должна использоваться.

env = Environment()
env.Append(CCFLAGS=['-g','-pg'], LINKFLAGS=['-pg'])
env.Program(target='program1', source= ['program1.c'])

Вывод компиляции:

scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
gcc -o program1.o -c -g -pg program1.c
gcc -o program1 -pg program1.o
scons: done building targets.

Отметьте дополнительный "-pg" в связывающейся фазе.

7
задан kobrien 14 August 2010 в 18:36
поделиться

1 ответ

В этом случае компоновщику также нужна опция -pg . Из руководства GCC:

-pg Сгенерировать дополнительный код для записи информации профиля, подходящей для программы анализа gprof. Вы должны использовать эту опцию при компиляции исходных файлов, о которых вы хотите получить данные, и вы также должны использовать ее при компоновке .

Попробуйте также добавить параметр в переменную среды LDFLAGS .

4
ответ дан 7 December 2019 в 14:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: