簡體   English   中英

如何在hp-ux中使用gcc創建共享庫?

[英]How to create shared library with gcc in hp-ux?

我嘗試在hp-ux上使用gcc編譯器創建共享庫。 我使用以下命令:

  1. gcc -Wall -fPIC -std = gnu99 -c * .c
  2. gcc -shared -Wl -o my_library.so * .o

一切都能編譯而沒有警告或錯誤,但是當我嘗試使用該庫時,出現錯誤:

錯誤:擴展加載失敗:操作系統錯誤:-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;

我終於解決了我的問題。 我必須使用gcc選項-mlp64庫創建為64位庫,因為SAS軟件是64位。 但是,我仍然不知道為什么proc proto在LINUX上正常工作,因為SAS軟件也在那里64b。 在這兩種環境下,gcc安裝可能有所不同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM