如何在hp-ux中使用gcc创建共享库?

时间:2015-05-11 11:32:41

标签: c++ c gcc sas hp-ux

我尝试在hp-ux上使用gcc编译器创建一个共享库。我使用这些命令:

  1. gcc -Wall -fPIC -std = gnu99 -c * .c
  2. gcc -shared -Wl -o my_library.so * .o
  3. 所有内容都在没有警告或错误的情况下编译,但是当我尝试使用该库时,我收到错误:

    错误:扩展加载失败:操作系统错误:-1(' path_to_lib '不是有效的加载模块:错误的幻数)。 错误:无法加载扩展名:( path_to_lib ) 错误:扩展加载失败:操作系统错误:-1(' path_to_lib '不是有效的加载模块:错误的幻数)

    你知道这个错误究竟意味着什么吗?如何解决?

    编辑: 我在SAS程序中使用我的共享库,如下所示:

    proc proto package =work.myfuncs.tests;
       link "/home/my_library.so";
    
       int test(int x);
    run;
    

1 个答案:

答案 0 :(得分:0)

我终于解决了我的问题。我不得不使用gcc选项-mlp64将库创建为64位库,因为SAS软件是64位。但是,我仍然不知道为什么proc proto在LINUX上正常工作,因为SAS软件也是64b。也许它在这两种环境中也有不同的gcc instalations。