V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jimy1
V2EX  ›  C

请问“ld: fatal: Symbol referencing errors.”这种报错 是什么原因,谢谢了

  •  
  •   jimy1 · 2017-12-20 11:19:58 +08:00 · 2199 次点击
    这是一个创建于 2564 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我之前编译时链接的 oracle 11g 的 libaidb_ora.so ,没有这个问题,发送给客户,客户说他们用的是 oracle 10g 的,所以我把 libaidb_ora.so 换成了客户现场的 oracle 10g 的版本,重新编译 psagent_single 报错

    编译命令如下:

    CC -g -DSunOS -o psagent_single ps_main.o ps_global.o ABSDatabase.o ps_config_attr.o ps_shlib.o ps_action.o ps_config.o ps_prov_record.o ps_provision.o datetime.o ps_daemon.o ps_pid_file.o ps_queue.o  -L/tank/data/build/test1/obs61_vb3.3/center/lib -L/aitools/lib -L/tank/data/build/test1/obs61_vb3.3/platform/lib   -L/tank/data/build/test1/obs61_vb3.3/sdk/lib -lldap -llber -laidb_ora -ltcl8.2 -laiplatform -ldes -ldesm   -lclogfile -ldl
    

    报错信息:

    Undefined                       first referenced
     symbol                             in file
    cout                                /tank/data/build/test1/obs61_vb3.3/platform/lib/libaidb_ora.so
    unsafe_ostream::operator<<(long)              /tank/data/build/test1/obs61_vb3.3/platform/lib/libaidb_ora.so
    operator delete(void*)                            /tank/data/build/test1/obs61_vb3.3/platform/lib/libaidb_ora.so
    operator new(unsigned int)                            /tank/data/build/test1/obs61_vb3.3/platform/lib/libaidb_ora.so
    Iostream_init::Iostream_init(void)               /tank/data/build/test1/obs61_vb3.3/platform/lib/libaidb_ora.so
    Iostream_init::~Iostream_init(void)               /tank/data/build/test1/obs61_vb3.3/platform/lib/libaidb_ora.so
    aiCfg::getHandler(void)              /tank/data/build/test1/obs61_vb3.3/platform/lib/libaidb_ora.so
    endl(ostream&)                 /tank/data/build/test1/obs61_vb3.3/platform/lib/libaidb_ora.so
    unsafe_ostream::outstr(const char*, const char*)     /tank/data/build/test1/obs61_vb3.3/platform/lib/libaidb_ora.so
    ld: fatal: Symbol referencing errors. No output written to psagent_single
    make: *** [psagent_single] Error 1
    
    4 条回复    2017-12-21 14:25:23 +08:00
    nyanyh
        1
    nyanyh  
       2017-12-20 11:27:32 +08:00   ❤️ 1
    找不到符号? 10g 11g 是不是有 API 差异
    gnaggnoyil
        2
    gnaggnoyil  
       2017-12-20 11:36:09 +08:00 via Android   ❤️ 1
    @nyanyh api 差异就直接编译报错了.编译没问题链接器提示未定义符号的话明显编译器版本不同导致的 abi 差异,而且版本差的还挺远

    看详细错误目测直接原因是 libaidb_ora.so 和 lz 机子上的 cpp runtime 的 abi 没对上号.lz 要不先比对一下编译器版本?
    jimy1
        3
    jimy1  
    OP
       2017-12-20 12:03:30 +08:00
    谢谢 2 位回复,我都再看看
    hackpro
        4
    hackpro  
       2017-12-21 14:25:23 +08:00   ❤️ 1
    nm 看一下未定义的符号
    两个版本上都比对一下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2820 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 14:05 · PVG 22:05 · LAX 06:05 · JFK 09:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.