我在这里搜索了这个问题并找到了一些类似的问题,但有些解决方案对我不起作用。这是我的问题:我的应用程序正在使用 openldap-2.3 的共享库进行编译。Openldap 有 /usr/lib/libldap-2.3.so.0 链接到 /usr/lib/libldap-2.3.so.0.2.31。我将-lldap
选项传递给 gcc,它将 libldap-2.3.so.0 文件链接到我的应用程序。
但我想链接到特定名称,例如 libldap.so。请纠正我,将来如果我在开发系统中将openldap版本更改为2.4,它将链接到libldap-2.4.so.XXX版本。
那么我怎样才能将我的应用程序链接到特定名称,以便它始终查找像 libldap.so 这样的相同名称。
注意:我创建了 /usr/lib/libldap-2.3.so.0 的软链接作为 /usr/lib/libldap.so ,然后将库名称传递/usr/lib/libldap.so
给编译器,-l
然后应用程序编译成功,没有任何链接错误,但仍然显示相同的 libldap -2.3.so.0 依赖。
可能重复:
如何在C中对表达式进行字符串化
我希望我能在这里找到解决问题的方法.
我想添加ADD1中定义的十六进制数字,并且需要以*str
字符串形式输入相同的数字.
这只是一个例子,首先证明它的可能性.我实际上是在头文件中做同样的事情.
#include <stdio.h>
#define XMK_STR(x) #x
#define MK_STR(x) XMK_STR(x)
#define ADD1 0x6000+0x10
main()
{
char *str = "START " MK_STR(ADD1) "\n";
printf(str);
}
Run Code Online (Sandbox Code Playgroud)