При компиляции с использованием компилятора G ++ GNU каждый раз, когда я выполняю сборку, без изменения исходного кода, я получаю другой двоичный файл объекта. Есть ли параметр компиляции, который будет давать мне один и тот же двоичный файл каждый раз.Изменение двоичного файла объекта в каждой сборке
ответ
Скопировано из человека-страницы GCC:
-frandom семян = строка
Эта опция обеспечивает семя, которое GCC использует когда будет иначе использование случайных чисел. Это используется для генерации определенных имен символов, которые должны быть разными в каждом скомпилированном файле. Он также используется для размещения уникальных штампов в файлах данных покрытия и объектных файлов, которые производят . Вы можете использовать опцию -frandom-seed для создания воспроизводимых одинаковых объектных файлов.Строка должна быть разной для каждого файла, который вы компилируете.
Спасибо, это работает для меня. – user502603
Вам следует лучше использовать make
. Таким образом, если ваш источник не изменился, компиляция будет пропущена, поэтому объектные файлы не будут изменены.
Редактировать: после некоторого размышления, можно отправить комментарий с помощью make-файла, который отделяет предварительную обработку и фактическую компиляцию. и некоторые грязные трюки.
Пример Makefile:
all: source
source: source.i.cpp
@cmp -s source.i.cpp source.i.prev || g++ source.i.cpp -o source
@touch source
@cp source.i.cpp source.i.prev
source.i.cpp: source.cpp
@g++ -E source.cpp >source.i.cpp
Обратите внимание время исполняемого изменяется, но содержимое не (если вы изменили только комментарии, не фактический код).
Я меняю источник, но добавив только комментарии не изменяя программа. У вас есть решение для этого случая? – user502603
На самом деле нет, изменение исходного файла означает перекомпиляцию :-(Make и другие инструменты сборки не настолько умны, чтобы понять, что изменены только комментарии. – Vlad
Продлен ответ для покрытия вашего дела :) – Vlad
- 1. Изменение двоичного файла
- 2. Изменение содержимого двоичного файла в Java
- 3. Изменение двоичного файла PHP, используемого localhost
- 4. Изменение данных в сборке Backbone
- 5. Чтение типа объекта из двоичного файла
- 6. Поиск высоты двоичного дерева в сборке (MIPS)
- 7. Dlls копируются при каждой сборке
- 8. Создать тег при каждой сборке приложения?
- 9. чтения файла в сборке
- 10. Изменение двоичного дерева поиска
- 11. Заполнение отверстий внутри двоичного объекта
- 12. простой формат файла двоичного файла
- 13. Как обрабатывать местоположение двоичного двоичного файла Firefox?
- 14. Написание файла txt в сборке
- 15. Получить местоположение файла в сборке
- 16. Чтение из файла в сборке
- 17. чтение из файла в сборке
- 18. Изменение объекта в OpenGL
- 19. Обновление ресурсов автоматически при каждой сборке?
- 20. clion run cmake на каждой сборке
- 21. C к сборке, переводчик по каждой инструкции
- 22. Delphi 7 Компиляция компонентов на каждой сборке
- 23. Кэширование двоичного файла в C#
- 24. Чтение двоичного файла в python
- 25. Запись в конец двоичного файла
- 26. Преобразование двоичного файла в float
- 27. Чтение двоичного файла в массив
- 28. Чтение двоичного файла в Java
- 29. Пометка двоичного файла в Subversion
- 30. Распаковка двоичного файла в C
Возможный дубликат [детерминированных двоичный выход с г ++] (http://stackoverflow.com/questions/14653874/deterministic-binary-output-with-g) –