- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试为 ARM uClibc 环境构建一个项目,但缺少一些功能。找不到我应该包含哪个库来解决依赖关系。 nm
没有帮助我搜索,因为它在大多数工具链附带的库上说:
nm: ./host/usr/arm-unknown-linux-uclibcgnueabi/sysroot/lib/libuClibc-0.9.32.1.so: no symbols
这是 GCC 的输出:
./host/usr/bin/arm-unknown-linux-uclibcgnueabi-gcc
-Wl,-rpath,./host/usr/lib/
-Wl,-rpath,./host/usr/../lib/
-Wl,-rpath,./host/usr/arm-unknown-linux-uclibcgnueabi/sysroot/lib/
-Llibzway -o test_so main.o -lzway
-L./host/usr/lib/
-L./host/usr/../lib/
-L./host/usr/arm-unknown-linux-uclibcgnueabi/sysroot/lib/ -lpthread
-lxml2 -lz -lm
./host/usr/lib/libxml2.so: warning: gethostbyname is obsolescent, use getnameinfo() instead.
./host/usr/lib/libxml2.so: undefined reference to `fcntl64'
./host/usr/lib/libxml2.so: undefined reference to `fopen64'
./host/usr/../lib/libz.so: undefined reference to `lseek64'
./host/usr/lib/libxml2.so: undefined reference to `stat64'
./host/usr/lib/libiconv.so.2: undefined reference to `mbrtowc'
./host/usr/lib/libiconv.so.2: undefined reference to `_stdlib_mb_cur_max'
./host/usr/lib/libiconv.so.2: undefined reference to `wcrtomb'
./host/usr/lib/libxml2.so: undefined reference to `open64'
collect2: ld returned 1 exit status
make: *** [test_so] Error 1
更新:我已经从目标主机复制了 uClibc 并明确定义要求与它链接:
./host/usr/bin/arm-unknown-linux-uclibcgnueabi-gcc
-Wl,-rpath,./host/usr/lib/
-Wl,-rpath,./host/usr/../lib/
-Wl,-rpath,./host/usr/arm-unknown-linux-uclibcgnueabi/sysroot/lib/
-Llibzway -o test_so main.o -lzway
-L./host/usr/lib/
-L./host/usr/../lib/
-L./host/usr/arm-unknown-linux-uclibcgnueabi/sysroot/lib/
-luClibc-0.9.31
-lpthread -lxml2 -lz -lm
./host/usr/bin/../lib/gcc/arm-unknown-linux-uclibcgnueabi/4.5.3/../../../../arm-unknown-linux-uclibcgnueabi/bin/ld:
errno: TLS reference in ./host/usr/bin/../arm-unknown-linux-uclibcgnueabi/sysroot/lib/libpthread.so.0 mismatches non-TLS definition in ./host/usr/lib/libuClibc-0.9.31.so section .bss
./host/usr/bin/../arm-unknown-linux-uclibcgnueabi/sysroot/lib/libpthread.so.0: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [test_so] Error 1
这超出了我对交叉编译的了解。有什么想法吗?
最佳答案
听起来您遇到了几个问题:
您似乎在尝试使用主机的 libxml2.so
副本。这是行不通的。您需要为您的目标系统及其 libc 构建一个。
您的 uClibc 是在没有大文件支持的情况下编译的。返回并修复构建选项或 uClibc。这不是绝对必要的(正确构建的 libxml2.so
链接到 uClibc 将在不这样做的情况下工作),但是使用大文件前接口(interface)确实是倒退的,并且会不必要地限制您的程序。
关于c - 我应该添加哪个库来解决 fcntl64、stat64 等问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10918261/
跟踪一个oracle进程,发现它首先打开一个文件/etc/netconfig作为文件句柄11,然后复制它作为256 通过使用参数 F_DUPFD 调用 fcntl,然后关闭 原始文件句柄 11。后来它
我读过有关套接字、连接、fcntl、缓冲区等的内容。但我不知道套接字和 fcntl 函数之间的联系是什么。我只知道socket是用来建立连接的,fcntl是用来控制打开文件的。我不知道fcntl是如何
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我有一个小程序,它在打开后无法更改文件访问模式。 int main(int argc, char* argv[]) { int fd; char *filename = argv[1]
我正在编写一个应用程序,它在我需要锁定的规范中每次我在上面写一个文件(这个文件将被其他应用程序读取其他团队正在研究): 我实现了以下功能: int lock_file (int fd) { i
我正在调试一些代码,并且总是有 l_pid = 0 用于设置文件锁。我觉得这很奇怪。这是正确的吗?文档没有说 0 零值 .. 最佳答案 l_pid只有在用F_GETLK获取锁状态时才有意义;设置锁时,
是否可以在文件上使用 fcntl() 系统调用来实现线程/进程同步(而不是信号量)? 最佳答案 是的。 Unix fcntl 锁(和一般的文件系统资源)是系统范围的,因此任何两个执行线程(无论它们是否
是否可以在 main() 以外的函数中使用 fcntl() ?调用后文件是否解锁?我这样说是因为在这种情况下 fcntl() 和 lockfile() 中的大部分其他内容在函数 返回 时都超出范围。
如何使用 fcntl 取消设置已设置的标志? 例如我可以使用 将套接字设置为非阻塞模式 fcntl(sockfd, F_SETFL, flags | O_NONBLOCK) 现在,我想取消设置 O_N
在基于 Debian 的操作系统(Ubuntu、Debian Squeeze)上,我使用 Python(2.7、3.2)fcntl 来锁定文件。据我了解,fnctl.flock 以某种方式锁定文件,如
我有一个简单的脚本,它遍历文件夹中的文件,然后将它们从 flv 转换为 mp4。如何在 bash 中跳过文件夹中具有 的文件fcntl 锁定它们,然后在解除锁定时返回? #!/bin/bash for
我正在尝试使用 IronPython 2.7 在 .NET 4.0 上使用 IronPython 执行此方法。我正在使用 Windows 7 import os import re import nl
我编写了一个简单的程序来帮助我测试 fcntl 文件锁定。参数“set”锁定我的测试文件。参数“get”告诉我文件是否被锁定。参数“un”尝试解锁文件。 在一个 shell 中,我运行程序来锁定文件。
我正在使用一个不运行 unix/linux/windows 或任何熟悉的操作系统的系统。然而,有一些套接字库,其中之一是socket.h。问题是那里有setsockopt函数和一些选项,但没有fcnt
我想通过系统调用fcntl来预分配存储。这是我执行此操作的代码: fstore_t store = {F_ALLOCATECONTIG, F_PEOFPOSMODE, 0, length, 0}; i
{net04:~/xxxx/wip} gcc -o write_test write_test.c In file included from write_test.c:4: global.h:10
// Wait until data can be read without blocking. size_t read_some(implementation_type& impl,
有什么方法可以从没有锁定这些范围的进程中删除文件上的 fcntl 字节范围锁? 我有几个对文件进行字节范围锁定的进程。我基本上需要想出的是一个外部工具,它可以帮助我删除指定文件的字节范围锁。 最佳答案
通过网络从磁盘读取和写入文件以获得最佳速度时,正确的 fcntl 标志是什么? 也许问题出在文件描述符上设置的 fcntl 标志? 最佳答案 我认为 fcntl 不会为您提供任何会影响性能的东西。也许
我目前正在尝试通过 python 锁定一个文件,这样其他进程甚至无法读取它。 到目前为止,我正在通过 python 解释器测试 fcntl.lockf() 的行为: >>> file = open("
我是一名优秀的程序员,十分优秀!