Поздравления,
Вот мой файл 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" в связывающейся фазе.
В этом случае компоновщику также нужна опция -pg
. Из руководства GCC:
-pg Сгенерировать дополнительный код для записи информации профиля, подходящей для программы анализа gprof. Вы должны использовать эту опцию при компиляции исходных файлов, о которых вы хотите получить данные, и вы также должны использовать ее при компоновке .
Попробуйте также добавить параметр в переменную среды LDFLAGS
.