首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux 下可否 A 程序导出一个函数,B 程序直接调用 A 程序的这个导出函数?

在 Linux 下,可以通过以下方式实现 A 程序导出一个函数,B 程序直接调用 A 程序的这个导出函数:

  1. 在 A 程序中,使用 extern 关键字声明要导出的函数,并在源文件中定义该函数。
代码语言:c
复制
// A.c
#include<stdio.h>

// 声明要导出的函数
extern void export_func();

// 定义要导出的函数
void export_func() {
    printf("This is export_func() in A.c\n");
}
  1. 在 B 程序中,使用 extern 关键字声明要导出的函数,并在源文件中调用该函数。
代码语言:c
复制
// B.c
#include<stdio.h>

// 声明要导出的函数
extern void export_func();

// 调用要导出的函数
int main() {
    printf("This is B.c\n");
    export_func();
    return 0;
}
  1. 编译 A 程序和 B 程序,并链接它们。
代码语言:bash
复制
gcc -c A.c -o A.o
gcc -c B.c -o B.o
gcc A.o B.o -o program
  1. 运行程序,可以看到 B 程序成功调用了 A 程序的导出函数。
代码语言:bash
复制
./program

输出:

代码语言:txt
复制
This is B.c
This is export_func() in A.c

这种方式可以实现 A 程序导出一个函数,B 程序直接调用 A 程序的这个导出函数。需要注意的是,在编译和链接时,需要确保 A 程序的导出函数和 B 程序的调用代码在同一个命名空间中。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券