- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我不完全理解 libcURL 的手册/帮助。我正在尝试构建一个包含 libcURL 库的交叉编译器。我在这个 video 的帮助下在我的服务器上安装了一个交叉编译器并且可以用 arm-linux-gnueabihf-gcc hello_simple.c
启动它。我可以编译简单的 c 代码,如 printf ("Hello World");
之后我尝试安装 libcURL 并阅读我需要编译 lib 并使用 configure
文件来设置构建和主机。我使用了不同的配置,例如:sudo ./configure --build=i586-pc-linux-gnu --host=arm-linux --target=arm-linux --prefix=/home/nevadmin/dev/gcc
但两者都不起作用。我想我在某个地方犯了错误。这是配置后的输出:
curl version: 7.46.0
Host setup: arm-unknown-linux-gnu
Install prefix: /home/nevadmin/dev/gcc
Compiler: gcc
SSL support: no (--with-{ssl,gnutls,nss,polarssl,mbedtls,cyassl,axtls,winssl,darwinssl} )
SSH support: no (--with-libssh2)
zlib support: no (--with-zlib)
GSS-API support: no (--with-gssapi)
TLS-SRP support: no (--enable-tls-srp)
resolver: default (--enable-ares / --enable-threaded-resolver)
IPv6 support: no (--enable-ipv6)
Unix sockets support: enabled
IDN support: no (--with-{libidn,winidn})
Build libcurl: Shared=yes, Static=yes
Built-in manual: enabled
--libcurl option: enabled (--disable-libcurl-option)
Verbose errors: enabled (--disable-verbose)
SSPI support: no (--enable-sspi)
ca cert bundle: no
ca cert path: no
LDAP support: no (--enable-ldap / --with-ldap-lib / --with-lber-lib)
LDAPS support: no (--enable-ldaps)
RTSP support: enabled
RTMP support: no (--with-librtmp)
metalink support: no (--with-libmetalink)
PSL support: no (libpsl not found)
HTTP2 support: disabled (--with-nghttp2)
Protocols: DICT FILE FTP GOPHER HTTP IMAP POP3 RTSP SMTP TELNET TFTP
我的服务器 cpuinfo:
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 44
model name : Intel(R) Xeon(R) CPU E5649 @ 2.53GHz
stepping : 2
microcode : 0x15
cpu MHz : 2533.423
cache size : 12288 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes hypervisor lahf_lm ida arat dtherm
bogomips : 5066.84
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:
还有我的 Controller :
Processor : ARMv7 Processor rev 2 (v7l)
BogoMIPS : 298.80
Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3 tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x3
CPU part : 0xc08
CPU revision : 2
例如使用 gcc hello_world.c -o hello_world
它针对 amd 处理器架构而不是 arm 编译它。似乎我缺少指向 libcURL 库的链接?我感谢每一个帮助。对不起,我的英语不是我的母语。
与 L/home/nevadmin/dev/gcc -lcurl
的链接正在工作,我可以使用 libcURL 编译一个 c 代码,但它仍然为 amd64 而不是 arm 编译它。 :/
最佳答案
您需要设置正确的编译器以在配置 curl 时使用。如果您查看 curl 的配置输出
./configure --help
你会在最后看到这个:
...
Some influential environment variables:
CC C compiler command
CFLAGS C compiler flags
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
nonstandard directory <lib dir>
LIBS libraries to pass to the linker, e.g. -l<library>
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
CPP C preprocessor
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
您可以使用如下命令行设置这些变量:
CC=arm-linux-gnueabihf-gcc ./configure --build=i586-pc-linux-gnu --host=arm-linux --target=arm-linux --prefix=/home/nevadmin/dev/gcc
(您不需要“sudo”来配置。)
gcc 本身会给你一个 AMD 可执行文件。您需要使用 arm-linux-gnueabihf-gcc 来获取 ARM 可执行文件。
请注意,在您的 curl 配置输出中它说
Compiler: gcc
这就是您获得为您的 AMD 构建的 curl 库的原因。 Bibliothek在英文中被称为“图书馆”。 ;-)
如果您在针对 ARM 进行交叉编译时仍然遇到问题,您可以查看交叉编译工具链的二进制版本 ELLCC .从 0.1.21 版本开始,它带有几个预编译的库,包括 curl。这是 ChangeLog .
关于c - 构建交叉编译器 : Intel Xeon E5649 >>> ARMv7 with libcURL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34391723/
我的应用程序有问题。我收到 7 个 Apple Mach-O 链接器错误。以下是错误: Undefined symbols for architecture armv7: "_OBJC_IVAR_
我是一名优秀的程序员,十分优秀!