问题标签 [libffi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
1421 浏览

ios - 如何为 iOS 和 macOS 编译 libffi?

我正在尝试在我的一个项目中使用libffi,但我似乎无法为 iOS(或 macOS,就此而言)进行编译。这是我在为 iOS 模拟器构建时遇到的各种错误之一:


更新 1:由于问题仍未得到解答,我决定在官方存储库中也打开一个问题

更新2:问题已得到解答,问题已关闭!

0 投票
1 回答
1172 浏览

linux - 在树莓派上将 libffi 编译为静态库

我正在尝试编译 libffi-3.2.1 的静态库但没有成功。

  1. cd libffi-3.2.1
  2. ./configure --prefix=/home/pi/libraries/libffi --enable-static --disable-shared
  3. 制作

输出如下:

exec_prefix=/home/pi/libraries/libffi' 'infodir=/home/pi/libraries/libffi/share/info' 'libdir=/home/pi/libraries/libffi/lib' 'mandir=/home/pi/libraries /libffi/share/man''prefix=/home/pi/libraries/libffi''AR=ar''AS=as''CC=gcc''CXX=g++''LD=/usr/bin/ld'' NM=/usr/bin/nm -B' 'RANLIB=ranlib' 'DESTDIR=' all-recursive make[2]: 进入目录'/home/pi/libffi-3.2.1/armv6l-unknown-linux-gnueabihf' make all in include make[3]: 进入目录 '/home/pi/libffi-3.2.1/armv6l-unknown-linux-gnueabihf/include' make[3]: 对'all'无事可做。make[3]: 离开目录 '/home/pi/libffi-3.2.1/armv6l-unknown-linux-gnueabihf/include' 全部在 testsuite make[3]: 进入目录 '/home/pi/libffi-3.2. 1/armv6l-unknown-linux-gnueabihf/testsuite' make[3]: 'all' 无事可做。make[3]: 离开目录'/home/pi/libffi-3.2.1/armv6l-unknown-linux-gnueabihf/testsuite' make all in man make[3]: 进入目录'/home/pi/libffi-3.2. 1/armv6l-unknown-linux-gnueabihf/man' make[3]: 'all' 无事可做。make[3]: 离开目录'/home/pi/libffi-3.2.1/armv6l-unknown-linux-gnueabihf/man' make[3]: 进入目录'/home/pi/libffi-3.2.1/armv6l-未知-linux-gnueabihf' 还原=: && backupdir=".am$$" && \ am__cwd= /home/pi/libffi-3.2.1/armv6l-unknown-linux-gnueabihf/man' make[3]: 'all' 无事可做。make[3]: 离开目录'/home/pi/libffi-3.2.1/armv6l-unknown-linux-gnueabihf/man' make[3]: 进入目录'/home/pi/libffi-3.2.1/armv6l-未知-linux-gnueabihf' 还原=: && backupdir=".am$$" && \ am__cwd= /home/pi/libffi-3.2.1/armv6l-unknown-linux-gnueabihf/man' make[3]: 'all' 无事可做。make[3]: 离开目录'/home/pi/libffi-3.2.1/armv6l-unknown-linux-gnueabihf/man' make[3]: 进入目录'/home/pi/libffi-3.2.1/armv6l-未知-linux-gnueabihf' 还原=: && backupdir=".am$$" && \ am__cwd=pwd&& CDPATH="${ZSH_VERSION+.}:" && cd .. && \ rm -rf $backupdir && mkdir $backupdir && \ if (/bin/bash /home/pi/libffi-3.2.1/missing makeinfo --version ) >/dev/null 2>&1; 然后 \ for f in ../doc/libffi.info ../doc/libffi.info-[0-9] ../doc/libffi.info-[0-9][0-9] ../doc /libffi.i[0-9] ../doc/libffi.i[0-9][0-9]; 做\ if test -f $f; 然后 mv $f $backupdir; 恢复=MV;别的 :; 菲; \ 完毕; \ 别的 :; fi && \ cd "$am__cwd"; \ if /bin/bash /home/pi/libffi-3.2.1/missing makeinfo -I doc -I ../doc \ -o ../doc/libffi.info ../doc/libffi.texi; \然后\rc=0; \CDPATH="${ZSH_VERSION+.}:" && cd ..; \否则\rc=$?; \ CDPATH="${ZSH_VERSION+.}:" && cd .. && \ $restore $backupdir/*echo "./../doc/libffi.info" | sed 's|[^/]*$||'; \fi; \ rm -rf $备份目录;exit $rc /home/pi/libffi-3.2.1/missing: line 81: makeinfo: command not found WARNING: 'makeinfo' is missing on your system。仅当您修改了“.texi”文件或任何其他间接影响手册方面的文件时才需要它。您可能想要安装 Texinfo 软件包: http ://www.gnu.org/software/texinfo/ 虚假的 makeinfo 调用也可能是使用有问题的“make”(AIX、DU、IRIX)的结果,在这种情况下您可能想要安装 GNU make: http ://www.gnu.org/software/make/Makefile:1408:目标“../doc/libffi.info”的配方失败 make[3]:* [../doc/libffi.info] 错误 127 make[3]: 离开目录 '/home/pi/libffi-3.2.1/armv6l-unknown-linux-gnueabihf' Makefile:1596: 目标 'all- 的配方递归'失败的make [2]:[all-recursive] 错误 1 ​​make[2]: 离开目录 '/home/pi/libffi-3.2.1/armv6l-unknown-linux-gnueabihf' Makefile:730: 目标 'all' 的配方失败 make[1]:[all] 错误 2 make[1]: 离开目录 '/home/pi/libffi-3.2.1/armv6l-unknown-linux-gnueabihf' Makefile:607: 目标 'all-all' 的配方失败 make: * [all -all] 错误 2

我错过了什么?问候

0 投票
1 回答
513 浏览

ruby - Ruby Fiddle dll 搜索路径

我正在尝试使用以下小提琴代码加载 dll:(如果有更简单的方法来加载 dll 并在其上调用可以解决我的问题的函数,我很高兴听到它)

dlload "C:/Folder/Foo.dll"像我想要的那样工作。但问题是 Foo.dll 是一个 c++ dll,它需要在不同位置的其他几个 dll。

我如何在dlload "Foo.dll"没有完整路径的情况下进行调用。简而言之,如何将目录列表添加到 Ruby dll 搜索路径?

我尝试了以下方法:

ruby 解释器在另一个程序(Sketchup)中运行,所以我的环境受到限制。

0 投票
1 回答
970 浏览

python - 无法在 fedora23 工作站上安装 cffi

我正在尝试使用 pip3 在 fedora23 工作站上安装 cffi。但我得到以下错误。

命令“python setup.py egg_info”失败,错误代码 1 在 /tmp/pip-build-yweqr7c9/cffi

我应该怎么办?提前谢谢。

0 投票
1 回答
536 浏览

ios - Swizzling 函数 - 仅在运行时已知的函数

我想在objective-c中调配一个函数。问题是 - 我知道只在运行时需要调整的函数。现在代码中的不同方法将具有不同的返回类型、输入参数等。

我应该如何编写一个(通用)代码,如果给定它所属的函数和类的名称,我可以创建一个块,然后使用 imp_implementationWithBlock 创建 IMP,然后使用这个新创建的 IMP 调整原始方法。

0 投票
1 回答
536 浏览

glib - 从源代码构建 glib

早上好,我正在尝试从源代码构建 glib,但是几次尝试总是会出现此错误:

我正在使用这些命令:

有人可以帮助我吗?

0 投票
1 回答
833 浏览

ios - 如何在 iOS 上使用 libffi

我正在尝试使用 libffi ( https://github.com/libffi/libffi ) 在 iOS 运行时创建函数。但是,我不确定如何将其导入 Xcode 或如何开始使用该库。libffi-iOS 项目最近一次更新是在大约 3 年前。

请有人帮助提供教程或步骤或使用 libffi 等的简单 Xcode 项目。

当我尝试编译库时,出现以下错误:

0 投票
1 回答
4711 浏览

python - 无法在 Cent OS 中安装 Paramiko

最近我正在努力学习python并在工作期间编写一些脚本。但是我发现我的 python 没有更新到最新版本。所以我按照网络的一些指南从 2.6 升级到 2.7.6。之后,python、pip 和 easy_install 似乎一切正常。然后我尝试使用 pip 安装 Paramiko。错误显示未找到 libffi,如下所示。但是,当我尝试安装 libffi 时,它已经显示在那里。我试图搜索那里是否有任何其他包,但没有。

问题是 pip 试图找到 libffi.pc 但它不在任何包中。

谁能帮我一把?

谢谢!



0 投票
1 回答
601 浏览

amazon-ec2 - 在 Amazon EC2 实例 (CentOS) 上使用 pip 安装 mitmproxy 时出现问题

我正在尝试使用 pip 在我的 EC2 linux 实例上安装 mitproxy:

sudo pip install mitmproxy

我安装了 python2.7,现在有 2 个 libffi 实例

$ rpm -qa | grep libff libffi-3.0.13-11.4.amzn1.x86_64 libffi-devel-3.0.13-11.4.amzn1.x86_64

但每次我尝试运行安装命令时,都会收到以下错误消息:

gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/usr/include/python2.7 -c build/temp.linux-x86_64-2.7/_openssl.c -o build/temp.linux-x86_64-2.7/build/temp.linux-x86_64-2.7/_openssl.o build/temp.linux-x86_64-2.7/_openssl.c:423:30: fatal error: openssl/opensslv.h: No such file or directory #include <openssl/opensslv.h> ^ compilation terminated. error: command 'gcc' failed with exit status 1

有什么想法我哪里出错了吗?

0 投票
1 回答
349 浏览

cygwin - 在 Windows (Cygwin) 上的 utop 中尝试 `#require "ctypes.foreign";;` 时出错

感谢Jonathan Protzenko 的精彩指南,我设法在 Windows(在 Cygwin 中)上安装和运行OCaml + OPAM + utop。在utop中,我特别希望能够使用ctypes + ctypes.foreign来快速试验和原型访问各种 WinAPI 调用。从理论上讲,我成功地安装了ctypes包(成功)。不幸的是,当我尝试将它们实际加载到utop 中时,它们以令人惊讶的错误消息惨遭失败:opam install ...

尝试做同样的事情会rlwrap ocaml给出一个更长的错误消息:

注意:会话的完整记录在此处— 它包含 cmd.exe 终端中的会话输出,以及Cygwin 终端utop中的附加会话的输出。rlwrap ocaml

我完全不知道为什么会发生这种情况,或者我如何进一步尝试调试/查明/诊断情况,以便我可以尝试找到一些解决方法。(顺便说一下——我是 OCaml 和 OPAM 的新手,虽然我在 C/C++ 和 Linux 方面有相当的经验。)接下来是我的一些问题,我想这些问题可能有助于解决这个问题推动我通过障碍:

  • 有没有办法在本地调整 git repo(即 ctypes)并将其传递给 OPAM 而不是原始的 github ?
  • 我设法在谷歌上搜索了一些评论,似乎提到“libffi 的静态版本”可能会起作用,正如 ctypes 问题 #198 中所暗示的那样;但我是 OCaml 的新手,不幸的是,我完全不知道如何将这个建议应用于utop
  • 我如何告诉 OPAM 哪个 libffi 用于 ctypes?(具体来说,使用“静态 libffi”?)
  • 如何检查我安装的mingw64-x86_64-libffi Cygwin 软件包是静态链接还是动态链接?或者如果提供了两种变体,那么 ctypes 使用哪一种?我在 SO 上找到了一些关于如何检测 libffi.a 是否与 PIC(?)重定位 [ -fpic?] 相关联的答案,但它们看起来都非常骇人听闻,而且我尝试过的那些似乎都没有真正起作用,至少在我的情况下.
  • 任何帮助将不胜感激。我什至不知道该问谁,因为它是 OCaml、OPAM、utop 和 Cygwin 的交叉点,所有这些都是巨大且有些不相关/正交的系统。我试过在 ctypes repo 上发布这个问题,但一个月后得到的只是一个“补丁欢迎”标签。