Ich bemerkte, dass die Objektdatei aus einer Quelldatei durch g erzeugt ++ in einem Verzeichnis aus dem aus einer identischen Quelldatei in einem anderen Verzeichnis erzeugt unterscheidet:Warum führt die Kompilierung identischer Dateien in verschiedenen Verzeichnissen zu unterschiedlichen Ergebnissen?
tools_io $ diff -s MoveStats.h ../kernel/MoveStats.h
Files MoveStats.h and ../kernel/MoveStats.h are identical
tools_io $ diff -s MoveStats.cpp ../kernel/MoveStats.cpp
Files MoveStats.cpp and ../kernel/MoveStats.cpp are identical
tools_io $ g++ -c MoveStats.cpp -I ../common -o MoveStats.o -g -Wall -fopenmp
tools_io $ cd ../kernel
kernel $ g++ -c MoveStats.cpp -I ../common -o MoveStats.o -g -Wall -fopenmp
kernel $ cd ../tools_io
tools_io $ diff MoveStats.o ../kernel/MoveStats.o
Binary files MoveStats.o and ../kernel/MoveStats.o differ
tools_io $ ls -l MoveStats.o ../kernel/MoveStats.o
-rw-r--r-- 1 jody morpho 20632 Apr 13 11:22 ../kernel/MoveStats.o
-rw-r--r-- 1 jody morpho 20632 Apr 13 11:21 MoveStats.o
tools_io $ nm MoveStats.o > nmlocms.txt
tools_io $ nm ../kernel/MoveStats.o > nmkerms.txt
tools_io $ diff -s nmlocms.txt nmkerms.txt
Files nmlocms.txt and nmkerms.txt are identical
ich g ++ 4.9.4 auf gentoo:
tools_io $ g++ --version
g++ (Gentoo 4.9.4 p1.0, pie-0.6.4) 4.9.4
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Was könnte dazu führen, dass die beiden Objektdateien unterschiedlich sind?
Kann ich darauf vertrauen, dass sie funktional gleich sind?