我在C中有几个源文件,每个文件有一个函数. 我必须使用xlc编译器将其编译到z/OS上的共享库.
我正在用C文件编译
xlc -c -O2 -o o/func1.o func1.c
稍后,我创建lib文件,
xlc -o library.o o/*.o
我想知道这是不是在Z/OS中创建共享库的正确方式?
有没有更有经验的人帮我解决这个问题?
我在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的目录.