gpt4 book ai didi

c - C 中的一对一链接

转载 作者:行者123 更新时间:2023-11-30 16:00:18 25 4
gpt4 key购买 nike

有没有办法在 C 语言中实现目标文件的链接,使得某些对象只能相互链接在一起?

例如。尝试链接对象 1 和对象 2 将工作并生成工作可执行文件,但尝试链接对象 1 和对象 3 将返回错误,或者生成的可执行文件将无法正确工作。

背景信息:基本上,情况是程序员 A 和程序员 B 将他们的对象发送给链接器公司。 A 和 B 希望确保链接器公司只能将他们的对象链接在一起,而不能将他们的对象与其他程序员(即程序员 C 等)对象链接(因为这是非法的)。

Jörgen Sigvardsson 的回答很有用,但我想知道是否有更简单的方法。例如。如果尝试使用 gcc 将非法对象链接在一起,链接器公司可以确定需要哪些符号,然后将它们添加到非法对象中,轻松突破限制。

最佳答案

是的,有办法。在对象 1 中:

extern int object_1_symbol;
int object_2_symbol;

在对象 2 中:

int object_1_symbol;
extern int object_2_symbol;

这将要求您将这些对象链接在一起,并阻止您将其与对象 3 链接在一起。这并非万无一失,但它可能会满足您的目的。

关于c - C 中的一对一链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7867398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com