ld:致命:文件bcPAC安慰剂.o:错误的ELF类:ELFCLASS32



以下是我运行项目的环境,该项目包含C和CPP代码。

uname-a:

SunOS nzdrb12z 5.11 11.4.40.107.3 sun4v sparc sun4v非全球区域

cc-V:

抄送:Studio 12.6 SunC 5.15 SunOS_sparc 2017/05/30

目前面临以下错误,

CURRENT ERROR:
ld: fatal: file /opt/developerstudio12.6/OracleDeveloperStudio12.6-solaris-sparc-bin/developerstudio12.6/lib/compilers/sparcv9/libCCexcept.so.1: wrong ELF class: ELFCLASS64
ld: fatal: file bcPLogon.o: wrong ELF class: ELFCLASS64
ld: fatal: file bcSecurity.o: wrong ELF class: ELFCLASS64
ld: fatal: file bcPAccessCheck.o: wrong ELF class: ELFCLASS64
ld: fatal: file bcPEncryption.o: wrong ELF class: ELFCLASS64
ld: fatal: file bcPAuthentication.o: wrong ELF class: ELFCLASS64
ld: fatal: file bcPSecurityObjects.o: wrong ELF class: ELFCLASS64
ld: fatal: file bcPCEnc.o: wrong ELF class: ELFCLASS6

在此之前,我遇到了一个类似于下面提到的错误,

ld: fatal: file bcPACplacebo.o: wrong ELF class: ELFCLASS32

所以我在makefile中做了如下更改,

  1. MakeDefaults.Solaris64(主makefile(下

    CC_MEMORY_MODEL_64=-m64

    CC_MEMORY_MODEL_32=-m32

    COMPILEFLAGS=-c-DSOLARIS$(CC_MEMORY_MODEL_64($(COMMONFLAGS($(ROGUEFLAGS(-D_REENTRANT$(CC_OPTIONAL_FLAGS(-xO3-xuiltin=%all-xibmil-errtags-erroff nondvarargw-mt-std=c++14

    C_FLAGS=-C-DSOLARIS$(CC_MEMORY_MODEL_32($(COMMONFLAGS($(ROGUEFLAGS(-D_REENTRANT$(CC_OPTIONAL_FLAGS(-xO3-xbuiltin=%all-xibmil-errtags-erroff nondvarargw-mt

  2. 在只有几个c文件的安全模块下(即bcPACplent.c(,我在makefile 中做了以下更改

    bcPAC安慰剂.o:bcPAC安慰剂.c

    cc $(C_FLAGS) -D_HPUX -DCHECK_PASSWORD bcPACplacebo.c -c -o bcPACplacebo.o
    

编译后,我开始面临CURRENT ERROR:,我没想到可能有很多对象需要在64和32之间进行区分。

问题:我知道这可能是重复的,但我没有从所有线程中找到有效的答案。但以下是我的问题,

  1. 如何一劳永逸地解决这个错误的ELF类错误
  2. 由于我是makefile脚本的新手,所以我不太清楚如何将对象标记为32和64。或者有没有更好的方法来解决这个问题。非常感谢您的帮助

您不能将32位&编译时的64位对象-程序必须是一个或另一个的全部-在所有命令中使用-m32或在所有命令中将使用-m64。

相关内容

  • 没有找到相关文章

最新更新