2015-05-06 5 views
0

Мое приложение имеет некоторые проблемы с переносимостью при компиляции с флагом -O. Я хотел бы узнать, какой флаг именно вызывает эту проблему, но я до сих пор безуспешный .. я использовал все флаги, найденные вКакие флаги включены -O?

gcc -c -Q -O --help=optimizers 

, но я до сих пор не могу воспроизвести проблему. Возможно ли, что -O также включает дополнительные флаги?

Btw, ошибка я получаю следующее:

[[email protected]]$ ./parscons 
./parscons: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by ./parscons) 
./parscons: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by ./parscons) 

ответ

2

Список флагов обеспечиваемых gcc для -O можно найти здесь - Optimize-Options

Из док:

-O -O1 Оптимизация. Оптимизация компиляции занимает несколько больше времени, а для большой функции - намного больше памяти. С -O компилятор пытается уменьшить размер кода и время выполнения, не выполняя никаких оптимизаций , которые занимают много времени компиляции.

-O включает следующие флаги оптимизации:

 -fauto-inc-dec 
     -fbranch-count-reg 
     -fcombine-stack-adjustments 
     -fcompare-elim 
     -fcprop-registers 
     -fdce 
     -fdefer-pop 
     -fdelayed-branch 
     -fdse 
     -fforward-propagate 
     -fguess-branch-probability 
     -fif-conversion2 
     -fif-conversion 
     -finline-functions-called-once 
     -fipa-pure-const 
     -fipa-profile 
     -fipa-reference 
     -fmerge-constants 
     -fmove-loop-invariants 
     -fshrink-wrap 
     -fsplit-wide-types 
     -ftree-bit-ccp 
     -ftree-ccp 
     -fssa-phiopt 
     -ftree-ch 
     -ftree-copy-prop 
     -ftree-copyrename 
     -ftree-dce 
     -ftree-dominator-opts 
     -ftree-dse 
     -ftree-forwprop 
     -ftree-fre 
     -ftree-phiprop 
     -ftree-sink 
     -ftree-slsr 
     -ftree-sra 
     -ftree-pta 
     -ftree-ter 
     -funit-at-a-time 

-О также включает -fomit-кадры указателя на машинах, где делать это не мешает при отладке.

+0

привет спасибо за ваш ответ, я уже нашел ваш список и попытался скомпилировать мое приложение со всеми этими флагами, но он по-прежнему не воспроизводит мою проблему с переносимостью. –

+0

Какая проблема, которую вы видите? – bentank

+0

Я компилирую свое приложение на одном компьютере и запускаю его на секунду (у которого нет той же версии libstdC++. So6) –