Форум программистов, компьютерный форум CyberForum.ru

Профилирование и альтернативная компиляция проектов Visual Studio - C++

Восстановить пароль Регистрация
 
indico
0 / 0 / 0
Регистрация: 11.07.2015
Сообщений: 5
11.07.2015, 16:45     Профилирование и альтернативная компиляция проектов Visual Studio #1
Я хочу научиться профилировать написанные мной c++ программы. Я работаю в среде windows. Для профилирования проекта я развернул MinGV и добавил путь к компиляторам и профайлеру в общие пути. Далее при попытке профилировать только что скомпилированный в Visual Studio проект, через gprof, профилировщик заругался:

C++
1
2
3
C:\Users\RIK\Documents\Visual Studio 2013\Projects\CustomWebGL\Debug>gprof Custo
mWebGL.exe gmon.out > analysis.txt
gprof: file `CustomWebGL.exe' has no symbols
Насколько я понял и гугл источников все дело в специальном флажке -pg необходимом при компиляции проекта

Я вернулся к исходникам проекта и попытался скомпилировать проект самостоятельно через доступные в MinGV компиляторы, но на этот раз заругался компилятор:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
C:\Users\RIK\Documents\Visual Studio 2013\Projects\CustomWebGL\CustomWebGL>g++ S
ource.cpp -g -pg
C:\Users\RIK\AppData\Local\Temp\ccRtE3hr.o: In function `Z4lineiiiiR8TGAImage8TG
AColor':
C:\Users\RIK\Documents\Visual Studio 2013\Projects\CustomWebGL\CustomWebGL/Sourc
e.cpp:38: undefined reference to `TGAImage::set(int, int, TGAColor)'
C:\Users\RIK\Documents\Visual Studio 2013\Projects\CustomWebGL\CustomWebGL/Sourc
e.cpp:41: undefined reference to `TGAImage::set(int, int, TGAColor)'
C:\Users\RIK\AppData\Local\Temp\ccRtE3hr.o: In function `main':
C:\Users\RIK\Documents\Visual Studio 2013\Projects\CustomWebGL\CustomWebGL/Sourc
e.cpp:47: undefined reference to `TGAImage::TGAImage(int, int, int)'
C:\Users\RIK\Documents\Visual Studio 2013\Projects\CustomWebGL\CustomWebGL/Sourc
e.cpp:53: undefined reference to `TGAImage::flip_vertically()'
C:\Users\RIK\Documents\Visual Studio 2013\Projects\CustomWebGL\CustomWebGL/Sourc
e.cpp:54: undefined reference to `TGAImage::write_tga_file(char const*, bool)'
C:\Users\RIK\Documents\Visual Studio 2013\Projects\CustomWebGL\CustomWebGL/Sourc
e.cpp:56: undefined reference to `TGAImage::~TGAImage()'
C:\Users\RIK\Documents\Visual Studio 2013\Projects\CustomWebGL\CustomWebGL/Sourc
e.cpp:56: undefined reference to `TGAImage::~TGAImage()'
collect2.exe: error: ld returned 1 exit status
Компилятор VS естественно компилирует проект без ошибок.

Я так понимаю что в Visual Studio должен быть какой-то инструментарией для управлением компиляцией, но хотелось бы помимо поиска этих настроек также разобраться как компилировать проекты через командную строку.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.07.2015, 16:45     Профилирование и альтернативная компиляция проектов Visual Studio
Посмотрите здесь:

компиляция в Microsoft Visual Studio 2008 C++
C++ компиляция файла ms visual studio 2010
компиляция больших проектов в Visual C++ 6.0 C++
C++ Долгая компиляция MS Visual Studio 2012
Компиляция проекта Visual Studio 2008 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DrOffset
6426 / 3800 / 880
Регистрация: 30.01.2014
Сообщений: 6,594
11.07.2015, 18:25     Профилирование и альтернативная компиляция проектов Visual Studio #2
Цитата Сообщение от indico Посмотреть сообщение
gprof
gprof - это GNU Profiler, с компилятором MS он работать не будет.

Цитата Сообщение от indico Посмотреть сообщение
Я вернулся к исходникам проекта и попытался скомпилировать проект самостоятельно через доступные в MinGW компиляторы, но на этот раз заругался компилятор.
Судя по ошибке, ругается линкер. Это значит только одно: как-то неправильно компилируется код. Для более детального ответа, нужно этот код видеть. Могу предположить, что файлов в проекте несколько, а компилируется только один.

Добавлено через 1 минуту
indico, по поводу компиляции в командной строке: GCC - компиляция C/C++ программ
indico
0 / 0 / 0
Регистрация: 11.07.2015
Сообщений: 5
11.07.2015, 18:49  [ТС]     Профилирование и альтернативная компиляция проектов Visual Studio #3
Вы правы. С большой долей вероятности не компилируется класс TGAImage. Код в принципе идентичен коду из этого репозитория

В VS я переносил его по отдельности: сначала создал в пустом проекте Source.cpp далее создал класс и уже в тело заголовочного и исполняемого файлов скопировал содержание.
DrOffset
6426 / 3800 / 880
Регистрация: 30.01.2014
Сообщений: 6,594
11.07.2015, 18:53     Профилирование и альтернативная компиляция проектов Visual Studio #4
indico, о, так там и makefile есть. Тогда можно попробовать собрать его через GNU make или MinGW32 Make.
Выполнить в директории исходников
Bash
1
make
Или
Bash
1
mingw32-make
Естественно они должны быть доступны для использования в cmd (путь прописан в PATH).
Yandex
Объявления
11.07.2015, 18:53     Профилирование и альтернативная компиляция проектов Visual Studio
Ответ Создать тему
Опции темы

Текущее время: 17:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru