在我的solaris 64位機上,我通過鏈接3個對象文件drivermain.o(2),testcol.o(3)和teststmt.o創建可執行文件「drivertest」 (3)。我在命令中使用了-m64選項來創建64位可執行文件。當我嘗試運行可執行文件時,出現錯誤「非法指令(核心轉儲)」。當我嘗試使用dbx命令查看核心時,它說「dbx:File`drivertest'不是ELF可執行文件」。我的可執行文件是64位的,那爲什麼dbx不能在64位應用程序中工作?Solaris上的鏈接器和體系結構類型錯誤
此外,當我在可執行文件上運行ldd命令時,它會爲幾個依賴關係(4)提供「文件未找到」錯誤,所有這些錯誤都存在於/ export/home/builds/pc9x_root/960/build/powrmart /pmbuild/bin/SunOS.64.r(5),並且此目錄包含在使用setenv命令導出的LD_LIBRARY_PATH中。 爲什麼這也發生?
(1)
CC -G -m64 -o drivertest SunOS.64.r/drivermain.o SunOS.64.r/testcol.o SunOS.64.r/teststmt.o \
-L/export/home/builds/pc9x_root/960/build/powrmart/pmbuild/bin/SunOS.64.r -L/databases/oracle10.2.0_64BIT/lib -L/export/home/builds/pc9x_root/960/repo/third-party-libs/ACE/ace -L/export/home/builds/pc9x_root/960/build/powrmart/pmbuild/bin/SunOS.64.r \
-lpmcuti -lpmasrt -lpmser -lpmi18n -lpmdec -lpmodl -lclntsh -lpmicudata -lpmicui18n -lpmicuio -lpmicuuc -lpmsdkcmn
(2)
CC +w +w2 -mt -features=extensions -erroff=doubunder -m64 -O -KPIC -m64 -D_REENTRANT -DRW_MULTI_THREAD -DRW_NO_STL -DRW_BCB_NEW_IOSTREAMS -DPM_64BIT -DFD_SETSIZE=65536 -DUNIX -DSunOS -DINFA_PREFIX -I. -I/export/home/builds/pc9x_root/960/build/powrmart/server/dwriter -I/export/home/builds/pc9x_root/960/build/powrmart/server/dwriter/wrtfile -I/export/home/builds/pc9x_root/960/build/powrmart/server/include -I/export/home/builds/pc9x_root/960/build/powrmart/server/include/cef -I/export/home/builds/pc9x_root/960/build/powrmart/server/dmapper/trans -I/export/home/builds/pc9x_root/960/build/powrmart/server/dmapper/scrub -I/export/home/builds/pc9x_root/960/build/powrmart/server/dreader -I/export/home/builds/pc9x_root/960/build/powrmart/server/cmnutils -I/export/home/builds/pc9x_root/960/build/powrmart/common/cmnmisc -I/export/home/builds/pc9x_root/960/repo/third-party-libs/mitkerberos/include -I/export/home/builds/pc9x_root/960/repo/third-party-libs/CURL/include -I/export/home/builds/pc9x_root/960/repo/third-party-libs/OPENSSL/include -I/export/home/builds/pc9x_root/960/repo/third-party-libs/PMTL_PC -I/export/home/builds/pc9x_root/960/repo/third-party-libs/STLPORT_INCLUDE/stlport -I/export/home/builds/pc9x_root/960/repo/third-party-libs/ICU/include -I/export/home/builds/pc9x_root/960/repo/third-party-libs/ICU/source/common \
-c /home/devops/drivertest/drivermain.cpp -o SunOS.64.r/drivermain.o
(3)
CC +w +w2 -mt -features=extensions -erroff=doubunder -m64 -O -KPIC -m64 -D_REENTRANT -DRW_MULTI_THREAD -DRW_NO_STL -DRW_BCB_NEW_IOSTREAMS -DPM_64BIT -DFD_SETSIZE=65536 -DUNIX -DSunOS -DINFA_PREFIX -I. -I/export/home/builds/pc9x_root/960/build/powrmart/server/dwriter -I/export/home/builds/pc9x_root/960/build/powrmart/server/dwriter/wrtfile -I/export/home/builds/pc9x_root/960/build/powrmart/server/include -I/export/home/builds/pc9x_root/960/build/powrmart/server/include/cef -I/export/home/builds/pc9x_root/960/build/powrmart/server/dmapper/trans -I/export/home/builds/pc9x_root/960/build/powrmart/server/dmapper/scrub -I/export/home/builds/pc9x_root/960/build/powrmart/server/dreader -I/export/home/builds/pc9x_root/960/build/powrmart/server/cmnutils -I/export/home/builds/pc9x_root/960/build/powrmart/common/cmnmisc -I/export/home/builds/pc9x_root/960/repo/third-party-libs/mitkerberos/include -I/export/home/builds/pc9x_root/960/repo/third-party-libs/CURL/include -I/export/home/builds/pc9x_root/960/repo/third-party-libs/OPENSSL/include -I/export/home/builds/pc9x_root/960/repo/third-party-libs/PMTL_PC -I/export/home/builds/pc9x_root/960/repo/third-party-libs/STLPORT_INCLUDE/stlport -I/export/home/builds/pc9x_root/960/repo/third-party-libs/ICU/include -I/export/home/builds/pc9x_root/960/repo/third-party-libs/ICU/source/common \
-c /home/devops/drivertest/testcol.cpp -o SunOS.64.r/testcol.o
(4)
CC +w +w2 -mt -features=extensions -erroff=doubunder -m64 -O -KPIC -m64 -D_REENTRANT -DRW_MULTI_THREAD -DRW_NO_STL -DRW_BCB_NEW_IOSTREAMS -DPM_64BIT -DFD_SETSIZE=65536 -DUNIX -DSunOS -DINFA_PREFIX -I. -I/export/home/builds/pc9x_root/960/build/powrmart/server/dwriter -I/export/home/builds/pc9x_root/960/build/powrmart/server/dwriter/wrtfile -I/export/home/builds/pc9x_root/960/build/powrmart/server/include -I/export/home/builds/pc9x_root/960/build/powrmart/server/include/cef -I/export/home/builds/pc9x_root/960/build/powrmart/server/dmapper/trans -I/export/home/builds/pc9x_root/960/build/powrmart/server/dmapper/scrub -I/export/home/builds/pc9x_root/960/build/powrmart/server/dreader -I/export/home/builds/pc9x_root/960/build/powrmart/server/cmnutils -I/export/home/builds/pc9x_root/960/build/powrmart/common/cmnmisc -I/export/home/builds/pc9x_root/960/repo/third-party-libs/mitkerberos/include -I/export/home/builds/pc9x_root/960/repo/third-party-libs/CURL/include -I/export/home/builds/pc9x_root/960/repo/third-party-libs/OPENSSL/include -I/export/home/builds/pc9x_root/960/repo/third-party-libs/PMTL_PC -I/export/home/builds/pc9x_root/960/repo/third-party-libs/STLPORT_INCLUDE/stlport -I/export/home/builds/pc9x_root/960/repo/third-party-libs/ICU/include -I/export/home/builds/pc9x_root/960/repo/third-party-libs/ICU/source/common \
-c /home/devops/drivertest/teststmt.cpp -o SunOS.64.r/teststmt.o
(5)
psrux902b1% ldd drivertest
libpmcuti.so => (file not found)
libpmasrt.so => (file not found)
libpmser.so => (file not found)
libpmi18n.so => (file not found)
libpmdec.so => (file not found)
libpmodl.so => (file not found)
libclntsh.so.10.1 => /databases/oracle10.2.0_64BIT/lib/libclntsh.so.10.1
libpmicudata.so.32 => /export/home/builds/pc9x_root/960/repo/third-party-libs/ICU/lib/libpmicudata.so.32
libpmicui18n.so.32 => /export/home/builds/pc9x_root/960/repo/third-party-libs/ICU/lib/libpmicui18n.so.32
libpmicuio.so.32 => /export/home/builds/pc9x_root/960/repo/third-party-libs/ICU/lib/libpmicuio.so.32
libpmicuuc.so.32 => /export/home/builds/pc9x_root/960/repo/third-party-libs/ICU/lib/libpmicuuc.so.32
libpmsdkcmn.so => (file not found)
libnnz10.so => /databases/oracle10.2.0_64BIT/lib/libnnz10.so
libkstat.so.1 => /lib/64/libkstat.so.1
libnsl.so.1 => /lib/64/libnsl.so.1
libsocket.so.1 => /lib/64/libsocket.so.1
libgen.so.1 => /lib/64/libgen.so.1
libdl.so.1 => /lib/64/libdl.so.1
libsched.so.1 => /usr/lib/64/libsched.so.1
libaio.so.1 => /lib/64/libaio.so.1
librt.so.1 => /lib/64/librt.so.1
libm.so.2 => /lib/64/libm.so.2
libc.so.1 => /lib/64/libc.so.1
libpthread.so.1 => /lib/sparcv9/libpthread.so.1
libmp.so.2 => /lib/64/libmp.so.2
libmd.so.1 => /lib/64/libmd.so.1
libscf.so.1 => /lib/64/libscf.so.1
libdoor.so.1 => /lib/64/libdoor.so.1
libuutil.so.1 => /lib/64/libuutil.so.1
/platform/SUNW,T5240/lib/sparcv9/libc_psr.so.1
/platform/SUNW,T5240/lib/sparcv9/libmd_psr.so.1
(6)
psrux902b1% ls /export/home/builds/pc9x_root/960/build/powrmart/pmbuild/bin/SunOS.64.r/libpmasrt.so
/export/home/builds/pc9x_root/960/build/powrmart/pmbuild/bin/SunOS.64.r/libpmasrt.so
psrux902b1% ls /export/home/builds/pc9x_root/960/build/powrmart/pmbuild/bin/SunOS.64.r/libpmser.so
/export/home/builds/pc9x_root/960/build/powrmart/pmbuild/bin/SunOS.64.r/libpmser.so
psrux902b1% ls /export/home/builds/pc9x_root/960/build/powrmart/pmbuild/bin/SunOS.64.r/libpmi18n.so
/export/home/builds/pc9x_root/960/build/powrmart/pmbuild/bin/SunOS.64.r/libpmi18n.so
psrux902b1% ls /export/home/builds/pc9x_root/960/build/powrmart/pmbuild/bin/SunOS.64.r/libpmdec.so
/export/home/builds/pc9x_root/960/build/powrmart/pmbuild/bin/SunOS.64.r/libpmdec.so
psrux902b1% ls /export/home/builds/pc9x_root/960/build/powrmart/pmbuild/bin/SunOS.64.r/libpmodl.so
/export/home/builds/pc9x_root/960/build/powrmart/pmbuild/bin/SunOS.64.r/libpmodl.so
在Solaris上,dbx附帶Studio編譯器 - 您使用dbx的哪個編譯器版本? – alanc