Прагма отключения оптимизации в .cpp файле под Linux.
От:
Аноним
Дата:
05.06.08 10:28
Оценка:
Доброго времени суток )
Имеется следующая проблема — есть с++ проект под Linux (проект создаётся в Eclipse). Проект компилируется с помощью gcc 4.1.2 (g++) с уровнем оптимизации O3. Компиляция всех файлов проходит успешно, кроме одного — в нём присутсвует функция, написанная на ассемблере (писал её не я, поэтому заменить ассемблерный код на аналогичный С не смогу). Необходимо понизить уровень оптимизации этой функции хотя бы до О2, или отключить оптимизацию этой функции вообще. Как это можно сделать? Если ли в Linux-е прагмы наподобие виндовой #pragma optimize("", off). Пробовал применить #pragma OPTIMIZE OFF и #pragma OPT_LEVEL 1, но они игнорируются...
Re: Прагма отключения оптимизации в .cpp файле под Linux.
А нельзя задать другие ключи компиляции для этого файла?
Re[2]: Прагма отключения оптимизации в .cpp файле под Linux.
От:
Аноним
Дата:
05.06.08 11:37
Оценка:
Здравствуйте, rising_edge, Вы писали:
_>А нельзя задать другие ключи компиляции для этого файла?
В Eclipse ключи для компиляции задаются в одном месте для ВСЕХ .cpp файлов. Насколько я в курсе, то скомпилировать отдельно взятый файл с ключами, отличными от тех, с которыми компилируются все остальные файлы нельзя. Хотя возможно я и ошибаюсь. Но всё таки хотелось бы отключить оптимизацию через прагму, если это возможно...
Re[3]: Прагма отключения оптимизации в .cpp файле под Linux.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, rising_edge, Вы писали:
_>>А нельзя задать другие ключи компиляции для этого файла?
А>В Eclipse ключи для компиляции задаются в одном месте для ВСЕХ .cpp файлов. Насколько я в курсе, то скомпилировать отдельно взятый файл с ключами, отличными от тех, с которыми компилируются все остальные файлы нельзя. Хотя возможно я и ошибаюсь. Но всё таки хотелось бы отключить оптимизацию через прагму, если это возможно...
Можно попробовать скомпилировать свой файл без оптимизации совсем отдельно, а в проект добавить уже *.o. Но как это делать в Eclipse — вот уж даже не знаю...
Re[3]: Прагма отключения оптимизации в .cpp файле под Linux.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, rising_edge, Вы писали:
_>>А нельзя задать другие ключи компиляции для этого файла?
А>В Eclipse ключи для компиляции задаются в одном месте для ВСЕХ .cpp файлов. Насколько я в курсе, то скомпилировать отдельно взятый файл с ключами, отличными от тех, с которыми компилируются все остальные файлы нельзя. Хотя возможно я и ошибаюсь. Но всё таки хотелось бы отключить оптимизацию через прагму, если это возможно...
разберись луче с какойнить нормальной системой сборки и собирай все не убогим Eclipsом -- никакая IDE не даст тебе гибкости коммндлайновых тулов...
Re: Прагма отключения оптимизации в .cpp файле под Linux.
От:
Аноним
Дата:
06.06.08 02:40
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Доброго времени суток ) А>Имеется следующая проблема — есть с++ проект под Linux (проект создаётся в Eclipse). Проект компилируется с помощью gcc 4.1.2 (g++) с уровнем оптимизации O3. Компиляция всех файлов проходит успешно, кроме одного — в нём присутсвует функция, написанная на ассемблере (писал её не я, поэтому заменить ассемблерный код на аналогичный С не смогу). Необходимо понизить уровень оптимизации этой функции хотя бы до О2, или отключить оптимизацию этой функции вообще. Как это можно сделать? Если ли в Linux-е прагмы наподобие виндовой #pragma optimize("", off). Пробовал применить #pragma OPTIMIZE OFF и #pragma OPT_LEVEL 1, но они игнорируются...
А как уровень оптимизации влияет на [не]успешность сборки?
Re[2]: Прагма отключения оптимизации в .cpp файле под Linux.
А>Компиляция всех файлов проходит успешно, кроме одного — в нём присутсвует функция, написанная на ассемблере (писал её не я, поэтому заменить ассемблерный код на аналогичный С не смогу).
А как оптимизация влияет на то, скомпилируется-ли файл? Что компилятор говорит об ошибках?
Если проблема действительно в ассемблерной вставке, то вынеси ассемблерный код в отдельный .asm файл, а потом скомпилируй его и слинкуй получившийся .o файл с остальными объектниками.
Ещё вариант — не использовать eclipse для сборки, а написать makefile — получишь больше гибкости и сможешь компилировать разные файлы с разными ключами.
Re[4]: Прагма отключения оптимизации в .cpp файле под Linux.
Здравствуйте, zaufi, Вы писали:
Z>разберись луче с какойнить нормальной системой сборки и собирай все не убогим Eclipsом -- никакая IDE не даст тебе гибкости коммндлайновых тулов...
А зачем на Eclipse бочку катить? Он замечательно вызывает сторонние make, если попросить.