В настоящее время я использую OS X Mavericks на этом компьютере и собираю приложение C ++ для научных вычислений. Я бы предпочел не конвертировать его в сборку XCode, если мне не нужно.
То, что я пытаюсь сделать, это профилировать программу, чтобы найти, какие разделы кода вызывают ее медленную работу. Это довольно простая сборка — примерно 15 исходных файлов, и я добавляю только следующие флаги: -g -O2 -ftree-vectorize. Например
clang++ MySource.cpp -g -O2 -ftree-vectorize -o MySource.o
Я запускаю программу, запускаю инструменты и прикрепляю к своему приложению профилировщик времени. Это все отлично работает. ОДНАКО, горячая точка в коде, который он идентифицирует, не имеет смысла, поскольку он выделяет строку кода, которая вызывается только при создании класса, и является ошибкой в конструкции, которая регистрирует ошибку и выдает исключение для следующего линия. Ни одна ошибка не регистрируется, и никакое исключение не выдается, поэтому я уверен, что эта строка кода на самом деле не та, которая выполняется. Правильно ли я собираю вещи для использования с инструментами? Есть ли другие флаги, которые мне нужно добавить? Я заметил, что он не связывается автоматически с моим исходным кодом в инструментах — мне нужно вручную найти нужный файл исходного кода.
Задача ещё не решена.
Других решений пока нет …