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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
indico
0 / 0 / 0
Регистрация: 11.07.2015
Сообщений: 5
#1

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

11.07.2015, 16:45. Просмотров 713. Ответов 3
Метки нет (Все метки)

Я хочу научиться профилировать написанные мной 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 должен быть какой-то инструментарией для управлением компиляцией, но хотелось бы помимо поиска этих настроек также разобраться как компилировать проекты через командную строку.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.07.2015, 16:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Профилирование и альтернативная компиляция проектов Visual Studio (C++):

компиляция больших проектов в Visual C++ 6.0 - C++
Допустим есть проект, состоящий из множества файлов исходного кода, заголовочных файлов,ресурсов, картинок и прочее. Все они размещаются по...

компиляция файла ms visual studio 2010 - C++
первый раз запустил программу , компилировал командой шифт+кнтрл+в , второй раз зашел в программу - команда не работает, меню 'построение'...

Компиляция проекта Visual Studio 2008 - C++
Вот жмем мы на кнопку "Начать отладку" программа запускается, если нема ошибок, то компилируется. А если я пишу какую нить прогу которую...

Компиляция в среде visual studio 2010 - C++
Профи выручайте! Не могу найти кнопку компиляции в визуаль студио 2010, создал файл с расширением .cpp написал код и вполне готов его...

Долгая компиляция MS Visual Studio 2012 - C++
Долго компилирует проект даже простой. Может быть дело в таком железе: Intel Celeron Dual-Core E5500 ОЗУ 4 гигабайта

компиляция в Microsoft Visual Studio 2008 - C++
как скомпилить прогу для windows mobile 5, например вот код: #include <iostream> using namespace std; int main() { ...

3
DrOffset
7321 / 4421 / 1001
Регистрация: 30.01.2014
Сообщений: 7,259
11.07.2015, 18:25 #2
Цитата Сообщение от indico Посмотреть сообщение
gprof
gprof - это GNU Profiler, с компилятором MS он работать не будет.

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

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

В VS я переносил его по отдельности: сначала создал в пустом проекте Source.cpp далее создал класс и уже в тело заголовочного и исполняемого файлов скопировал содержание.
0
DrOffset
7321 / 4421 / 1001
Регистрация: 30.01.2014
Сообщений: 7,259
11.07.2015, 18:53 #4
indico, о, так там и makefile есть. Тогда можно попробовать собрать его через GNU make или MinGW32 Make.
Выполнить в директории исходников
Bash
1
make
Или
Bash
1
mingw32-make
Естественно они должны быть доступны для использования в cmd (путь прописан в PATH).
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2015, 18:53
Привет! Вот еще темы с ответами:

Visual Studio, в чем разница между разными типами проектов? - C++
ATL CLR MFC Win32 Что это все такое, разница, дайте ссылку на обзор, разбор, объяснение - этого...

Visual Studio Express 2013 компиляция для windows 2000 - C++
Привет всем! Скажите, это реально скомпилировать проект для windows 2000?

Компиляция проекта в Visual Studio 2012: как это правильно делается? - C++
В общем не получается скомипилировать проект, вроде делаю все правильно (Построение>Построить решение) И он вроде как строит, ошибок...

Имеются ли отличия в компиляторах у сред разработки Visual Studio 2006 и Visual Studio 2015 ? - C++
скажите а где найти среду 2006 года? или можно использовать 2015 год?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
11.07.2015, 18:53
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru