我不确定问题是否正确表达,或者我想要什么是可能的。如何动态链接GCC对象?
我有一个现有的GCC应用程序(如果重要的话,为Cortex-M3编译)。我想要做的是创建一小段可以调用到现有应用程序中的功能(只有一种方法,几种方法)。我想将这几个方法放在特定的内存位置(我知道如何做到这一点)。我不知道该怎么做是让新应用程序编译/链接到现有应用程序的对象。
例如,我现有的应用程序有以下功能:
int Add(int a, int b);
和新应用程序要使用它:
int Calculate(int a, int b, int opType)
{
Add(a, b);
}
我可以访问所有连接,OBJ,H文件等。
不知道理解有一个输入到链接你试图达到的目标......你当然可以在建立你的应用程序时与静态或共享库链接。你想链接一些共享库或运行时?如果是这样,请查看'dl'函数(dlopen,dlsym等)......或者只是澄清问题...... – Macmade
您的Cortex-M3运行的是什么系统?如果它是一个自定义操作系统或一个小型RTOS,那么很有可能必须实现自己的动态链接/加载功能。根据您的需要,它可能非常简单(如果您只需加载位于固定地址且已链接到位于这些地址的项目),或者如果您需要处理地址修正,它可能会更复杂。 –