我正在尝试使用 libClang 解析函数属性,但到目前为止还没有成功。
例如,我可能在标题中定义了这样的属性。
#define __mobile__ __attribute__((mobile))
Run Code Online (Sandbox Code Playgroud)
在一个单独的 .cpp 文件中,我有我的函数定义:
<template T>
__mobile__ void run(T int){...}
Run Code Online (Sandbox Code Playgroud)
我花了一天时间玩弄 libClang 库并通过它与 C++ 进行交互。
到目前为止,我还无法判断该函数是否包含这样的属性。方法 clang_Cursor_hasAttrs 为游标运行返回 0,这是 CXCursor_FunctionTemplate 类型。
我一直在尝试将共享库链接到我的程序中,我希望它的路径与我的 RPATH 相关。
但是,当我运行ldd时,我注意到共享库的绝对路径是链接的。任何想法为什么?
编辑:
/home/projects/my_files/winter_fresh.so
libgcc_s.so.1 => /home/tomo/anaconda3/lib/libgcc_s.so.1 (0x00007f0a3bf64000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f0a3bd47000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f0a3b97d000)
/lib64/ld-linux-x86-64.so.2 (0x00007f0a3e369000)
libstdc++.so.6 => /home/tomo/anaconda3/lib/libstdc++.so.6 (0x00007f0a3b643000)
Run Code Online (Sandbox Code Playgroud)
问题是第一个文件。我不希望 Winter_fresh 的库成为绝对路径,因为我有一个包含它的 RPATH。