在 libc.so.6 中找不到统计方法
stat method not found in libc.so.6
使用 Dart FFI 我正在尝试动态加载 linux/posix 'stat' 函数。
我假设该函数在 libc.so.6 库中,但是当我尝试加载它时出现错误:
Invalid argument(s): Failed to lookup symbol (/lib/x86_64-linux-gnu/libc.so.6: undefined symbol: stat)
我成功地从 libc.so.6 库中加载了其他函数,因此我的动态加载技术工作正常。
我有两种说法:
- stat 是 xstat 的宏,因此 stat 不再存在。
- stat 在另一个我无法获取的库中。
理想情况下,我想使用 stat 而不是 xstat,因为我需要此代码也能在 osx 上工作,据我所知,它不支持 xstat。
帮忙?
I have two theories:
不需要理论化:你可以看看:
echo "#include <sys/stat.h>" | gcc -xc - -E -dD | less
nm -AD /lib/x86_64-linux/gnu/*.so* | grep ' stat$'
会告诉你你需要知道的一切(你的第一个理论是正确的)。
I want to use stat rather than xstat
你不能:它不存在(使用 GLIBC 时)。
I need this code to also work on osx which as far as I can tell doesn't support xstat.
您的代码可以检测它 运行 所在的平台并进行调整。这是使用非便携机制的代价,比如FFI。
使用 Dart FFI 我正在尝试动态加载 linux/posix 'stat' 函数。
我假设该函数在 libc.so.6 库中,但是当我尝试加载它时出现错误:
Invalid argument(s): Failed to lookup symbol (/lib/x86_64-linux-gnu/libc.so.6: undefined symbol: stat)
我成功地从 libc.so.6 库中加载了其他函数,因此我的动态加载技术工作正常。
我有两种说法:
- stat 是 xstat 的宏,因此 stat 不再存在。
- stat 在另一个我无法获取的库中。
理想情况下,我想使用 stat 而不是 xstat,因为我需要此代码也能在 osx 上工作,据我所知,它不支持 xstat。 帮忙?
I have two theories:
不需要理论化:你可以看看:
echo "#include <sys/stat.h>" | gcc -xc - -E -dD | less
nm -AD /lib/x86_64-linux/gnu/*.so* | grep ' stat$'
会告诉你你需要知道的一切(你的第一个理论是正确的)。
I want to use stat rather than xstat
你不能:它不存在(使用 GLIBC 时)。
I need this code to also work on osx which as far as I can tell doesn't support xstat.
您的代码可以检测它 运行 所在的平台并进行调整。这是使用非便携机制的代价,比如FFI。