Solaris Studio 12 üzerinde Solaris Studio 12.x kullanarak basit bir merhaba dünyası programı oluşturmaya çalışıyorum. Eğer aynı dosyayı iki farklı klasörden derlediğimde, diff komutu veya cmp komutu ile gösterildiği gibi nesne dosyası.Solaris Studio nesne dosyasında geçerli dizin bilgisi ekleniyor
Her iki nesne dosyasının (od -x) bir hex dökümünü aldı ve bunları karşılaştırdı ve hex'i ASCII'ye dönüştürebilecek çevrimiçi bir araç kullanarak, nesne dosyaları derlemenin geçerli dizini içerdiği için farkın meydana geldiğini fark etti. Başlatıldı.
Soru, derleyiciye, geçerli dizindeki bilgileri nesne dosyalarına dahil etmemesi gerektiğini anlatır. Birkaç optimizasyon seçeneği denendi - bunu çözmek için kullanışlı değildi.
bash-4.1$ cat a.cpp
#include <stdio.h>
int main() {
printf("Hello World!");
return 0;
}
bash-4.1$ ls
a.cpp temp1 temp2
bash-4.1$ cd temp1
bash-4.1$ /opt/SunProd/studio12u3/solarisstudio12.3//bin/CC ../a.cpp
bash-4.1$ cd ../temp2
bash-4.1$ /opt/SunProd/studio12u3/solarisstudio12.3//bin/CC ../a.cpp
bash-4.1$ cd ..
bash-4.1$ diff temp1/a.out temp2/a.out
Binary files temp1/a.out and temp2/a.out differ
bash-4.1$ cmp temp1/a.out temp2/a.out
temp1/a.out temp2/a.out differ: char 5968, line 24
bash-4.1$ od -x temp1/a.out > temp1/a.hex
bash-4.1$ od -x temp2/a.out > temp2/a.hex
bash-4.1$ diff -c temp1/a.hex temp2/a.hex
... shows hex diff (two sets) ...