如何调用其他';在我的C语言项目中有一个开源本体项目
假设你有一个用C写的软件,比如说XYZ。软件XYZ是一种开源专有软件。 这样我就可以知道软件的来源了。我可以使用该软件,但不能修改XYZ的文件 假设我正在写自己的软件,比如说ABC。该软件使用XYZ提供的一些功能 现在,XYZ的源代码中有一个函数称为“static int get_val(int index)”。 我想使用函数get_val(),那么我应该怎么做 我应该如何调用函数 从XYZ构建共享库(DLL或.so)。可能已经有一个共享库可用。 将代码(即ABC)与XYZ链接,就可以开始在程序中使用XYZ公开的函数。如何调用其他';在我的C语言项目中有一个开源本体项目,c,C,假设你有一个用C写的软件,比如说XYZ。软件XYZ是一种开源专有软件。 这样我就可以知道软件的来源了。我可以使用该软件,但不能修改XYZ的文件 假设我正在写自己的软件,比如说ABC。该软件使用XYZ提供的一些功能 现在,XYZ的源代码中有一个函数称为“static int get_val(int index)”。 我想使用函数get_val(),那么我应该怎么做 我应该如何调用函数 从XYZ构建共享库(DLL或.so)。可能已经有一个共享库可用。 将代码(即ABC)与XYZ链接,就可以开始在程序
所有的开源软件都有非常好的自述和说明,可以帮助您使用该软件。从那些指南开始检查。你不应该这样做。static关键字使函数位于其翻译单元(源文件,或多或少)的本地,这意味着不能从其他翻译单元调用它 当然可以,但这可能不是个好主意 有两种方法可以使用该功能:
如果XYZ项目是开源的
- 将XYZ项目的源文件添加到您自己的项目中,并一起编译
- 如果在XYZ项目中更改了一些内容,请考虑将更改的消息发送给项目的维护人员:他们可能喜欢您所做的并将其合并到将来的版本 中。
如果项目是专有的,您就没有源代码。定义为
静态…
的函数在其他翻译单元中不可见,因此您根本不调用它。描述同一项目的“开源”和“专有”是矛盾的。一个项目要么是,绝不是两者都是!确保XYS导出了方法get_val。在这种情况下,您可以将ABC与XYZ连接起来。