Я хочу скомпилировать исходный код, но у меня проблемы с компиляцией.
cc -O2 -Olimit 2000 -g -migrate -assume -Zp1 noaligned_objects ...
cc: error: 2000: No such file or directory
cc: error: noaligned_objects: No such file or directory
cc: error: unrecognized command line option ‘-migrate
cc: error: unrecognized command line option ‘-assume
cc: error: unrecognized command line option ‘-Zp1
Начните с компиляции его без системных флагов (например, с помощью gcc
возможно, с -I
, -L
и -L
флагов и ничего больше). Если рассматриваемая программа достаточно переносима, то это будет вопрос получения всех зависимостей для нее.
Как только вы сможете его построить, проверьте, работает ли он (как и ожидалось). Если это не так, это было бы подходящее время, чтобы взглянуть на флаги, которые вы использовали в DEC, чтобы убедиться, что это требует какого-либо специального лечения при строительстве. Здесь вы либо делаете программу переносимой, либо пытаетесь получить эквивалентное поведение, используя gcc
в целевой архитектуре по вашему выбору.
Наконец, как только программа будет построена и запущена, было бы неплохо посмотреть, хотите ли вы использовать какие-либо флаги оптимизации (подсказка: вам это не нужно. Если она работает нормально, оставьте ее так, как она есть).
-Wall
и отладочную информацию с помощью -g
; некоторые старые коды более не соответствуют стандарту (стандарт C эволюционировал). Так что улучшайте исходный код, пока не получите никаких предупреждений. После того, как вы отладили и протестировали свое приложение, рассмотрите возможность добавления оптимизации, например -O2
(производительность может значительно увеличиться, например, на 20%).
gcc -O2 -c file.c -o file.o