linux下编译不过去~/usr/bin/ld: skipping incompatible ...

yexiangshu 2011-01-15 03:09:32
makefile 如下:
#文件类型定义
.SUFFIXES: .ec .c .o .h

#编译器定义
EC=esql

#编译参数定义
EC_FLAGS= $(CC_CPCMT) $(CC_64BIT) -I. -I../include -I../../include

#目标存放路径
BUILD=../../build/

#目标文件
APP=$(BUILD)s_daily_ctrl $(BUILD)s_daily

#中间文件定义
OBJS=../../lib/comm.a

CLEANOBJ = $(APP) *.o *.c

all:$(APP)
$(BUILD)s_daily_ctrl:s_daily_ctrl.ec
$(EC) $(EC_FLAGS) -o $@ $? $(OBJS)
$(BUILD)s_daily:s_daily.ec
$(EC) $(EC_FLAGS) -o $@ $? $(OBJS)
rm -rf *.o *.c
clean:
rm -rf $(CLEANOBJ)


编译的报错:
esql -I. -I../include -I../../include -o ../../build/s_daily_ctrl s_daily_ctrl.ec ../../lib/comm.a
/usr/bin/ld: skipping incompatible /home/informix/lib/esql/libifsql.so when searching for -lifsql
/usr/bin/ld: skipping incompatible /home/informix/lib/esql/libifsql.a when searching for -lifsql
/usr/bin/ld: cannot find -lifsql
collect2: ld returned 1 exit status
make: *** [../../build/s_daily_ctrl] Error 1

大家帮忙给看看是什么问题,
就是换了个主机,然后编译就不行了,以前没问题的
...全文
37188 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
x495562800 2012-02-16
  • 打赏
  • 举报
回复
最好是自己在心环境在重新编译下,什么都不用改就会好的
sebachang 2011-02-23
  • 打赏
  • 举报
回复
同样的问题搞了我一天。
sebachang 2011-02-23
  • 打赏
  • 举报
回复
真想说MLGBD
yexiangshu 2011-01-21
  • 打赏
  • 举报
回复
esql -m32 -I. -I../include -I../../include -o ../../build/s_daily_ctrl s_daily_ctrl.ec ../../lib/comm.a
justkk 2011-01-18
  • 打赏
  • 举报
回复
-m32加在哪里?
这个选项好像是gcc、g++的编译选项,用以生成32位应用程序
Master of Linux 2021-07-06
  • 举报
回复
@justkk 谢谢你提醒了我,我的电脑时64位的,但是makefile里面加了-m32选项,导致一些64位库被说成skipping incompatible
Master of Linux 2021-07-06
  • 举报
回复
@Master of Linux 事实上,编译openssl库也和-mxxx有关,不然编译不过去
yexiangshu 2011-01-18
  • 打赏
  • 举报
回复 1
问题解决了,谢谢各位,加了个参数-m32
feicer 2011-01-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 justkk 的回复:]
看看环境变量LD_LIBRARY_PATH
把其中的/home/informix/lib,改为/home/informix/lib32
[/Quote]

正解
justkk 2011-01-17
  • 打赏
  • 举报
回复
看看环境变量LD_LIBRARY_PATH
把其中的/home/informix/lib,改为/home/informix/lib32
yexiangshu 2011-01-17
  • 打赏
  • 举报
回复
应该就是informix带的ESQL了,
我把环境变量都贴一下吧:
FIELDTBLS=fmlheader
SHELL=/bin/bash
TERM=vt100
HISTSIZE=1000
KDE_NO_IPV6=1
INFORMIXDIR=/home/informix
AR_64BIT=-X64
QTDIR=/usr/lib64/qt-3.3
QTINC=/usr/lib64/qt-3.3/include
USER=ims
LD_LIBRARY_PATH=/lib:/usr/lib:/usr/td/lib:/usr/ucblib:/usr/local/lib:/usr/vac/lib:/usr/vacpp/lib:/home/informix/lib:/home/informix/lib/esql:/home/informix/lib/cli:/home/informix/lib/dmi:/home/ims/lib:
LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:
TERMCAP=/home/informix/etc/termcap
KDEDIR=/usr
LIBPATH=/lib:/usr/lib:/usr/td/lib:/usr/ucblib:/usr/local/lib:/usr/vac/lib:/usr/vacpp/lib:/home/informix/lib:/home/informix/lib/esql:/home/informix/lib/cli:/home/informix/lib/dmi:/home/ims/lib:
ONCONFIG=onconfig.ims
MAIL=/var/spool/mail/ims
PATH=/usr/lib64/qt-3.3/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/ims/bin:/usr/vac/bin:/usr/vacpp/bin:/usr/contrib/bin:/home/informix/bin:/home/ims/bin:/home/ims/lib
INPUTRC=/etc/inputrc
PWD=/home/ims
EDITOR=vi
LANG=en_US
KDE_IS_PRELINKED=1
QCPLUSCMT=-qcpluscmt
PS1=$LOGNAME@$PWD\>
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
INFORMIXSERVER=ol_cs_ims
SHLVL=1
HOME=/home/ims
LOGNAME=ims
QTLIB=/usr/lib64/qt-3.3/lib
CVS_RSH=ssh
BILLINGDIR=/home/ims
LESSOPEN=|/usr/bin/lesspipe.sh %s
SHLIB_PATH=/lib:/usr/lib:/usr/td/lib:/usr/ucblib:/usr/local/lib:/usr/vac/lib:/usr/vacpp/lib:/home/informix/lib:/home/informix/lib/esql:/home/informix/lib/cli:/home/informix/lib/dmi:/home/ims/lib:
EC_64BIT=
CC=cc
LDR_CNTRL=MAXDATA=0x80000000
G_BROKEN_FILENAMES=1
_=/bin/env
OLDPWD=/home/informix
justkk 2011-01-17
  • 打赏
  • 举报
回复
找找你的esql,用file看看是多少位的..
yexiangshu 2011-01-17
  • 打赏
  • 举报
回复
/home/informix/lib/esql/libifsql.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), not stripped
justkk 2011-01-17
  • 打赏
  • 举报
回复
file /home/informix/lib/esql/libifsql.so
看看什么结果..
yexiangshu 2011-01-17
  • 打赏
  • 举报
回复
informix目录下 只有一个,/home/informix/lib
没有/home/informix/lib32啊
informix 是32位的和公司一样
是 系统从32位的改成64的了,结果编译报异常错误了
yexiangshu 2011-01-15
  • 打赏
  • 举报
回复
ret hat 系统是64位的
以前的系统是32位的,编译需要加新的参数吗?
yexiangshu 2011-01-15
  • 打赏
  • 举报
回复
有没有哪位大哥给指教下啊

23,215

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧