Solaris 11でSolaris Studio 12.xを使用して簡単なhello worldプログラムを作成しようとしています。別の2つのフォルダから同じファイルをコンパイルすると、 diffコマンドまたはcmpコマンドで示されるようなオブジェクトファイル。Solaris Studioでオブジェクトファイルに現在のディレクトリ情報を追加
両方のオブジェクトファイル(od -x)を16進数でダンプし、それらを比較し、16進数をASCIIに変換できるオンラインツールを使用して、オブジェクトファイルにコンパイルの現在のディレクトリが含まれているため、が開始された。
質問は、現在のディレクトリの情報をオブジェクトファイルに含めないようにコンパイラに指示する方法です。いくつかの最適化オプションを試しました - これを解決するために有用ではありませんでした。
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) ...