我在C中有几个源文件,每个文件有一个函数. 我必须使用xlc编译器将其编译到z/OS上的共享库.

我正在用C文件编译

xlc -c -O2 -o o/func1.o func1.c

稍后,我创建lib文件,

xlc -o library.o o/*.o

我想知道这是不是在Z/OS中创建共享库的正确方式?

有没有更有经验的人帮我解决这个问题?

推荐答案

发帖代表知识渊博的开发人员.

在z/OS上,共享库称为DLL,您需要指定DLL选项才能生成一个.以下是如何执行此操作以及如何使用DLL创建应用程序的示例.请注意,您仍然需要导出希望其他模块访问的函数(和数据).例如,这可以通过#杂注输出指令(https://www.ibm.com/docs/en/zos/3.1.0?topic=descriptions-pragma-export)或EXPORTALL编译器选项(https://www.ibm.com/docs/en/zos/3.1.0?topic=options-exportall-noexportall)来完成.详情可在此处找到:https://www.ibm.com/docs/en/zos/3.1.0?topic=dlls-building-dll-application

Xlc Library.c-qdll-wl,dll-o Library.dll#创建DLL

Xlc main.c Library.x-qdll-o Runme#创建将使用DLL的应用程序..x文件是由第一个命令创建的侧甲板.

运行应用程序时,可以使用LIBPATH环境变量指向DLL的目录.

C++相关问答推荐

漏洞仅出现在FreeBSD上,但在Windows、Linux和MacOS上运行得非常好

为什么静态说明符为内联函数生成外部定义?

如何启用ss(另一个调查套接字的实用程序)来查看Linux主机上加入的多播组IP地址?

为什么在C中设置文件的位置并写入文件,填充空字符?

为什么我得到更多的256假阳性在PKZIP解密密钥验证?

如何使用低级C++写出数值

如何创建一个C程序来存储5种动物的名字,并在用户 Select 其中任何一种动物时打印内存地址?

在C++中使用函数指针的正确语法

C-使用指针返回修改后的整数数组

如何使用[BTStack]BLE发送大型(>;2kb)信息包

获取每个循环迭代结束时的当前时间

平均程序编译,但结果不好

将多项式从文件.txt加载到终端时出现问题

CS50判断灯泡运动的问题,判断时多出一个灯泡,但不在终端上

C语言中奇怪的输出打印数组

Malloc和对齐

C struct 中的冒泡排序

C 错误:对 int 数组使用 typedef 时出现不兼容的指针类型问题

GDB 跳过动态加载器代码

int 与 size_t 与 long