问题标签 [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 投票
2 回答
174 浏览

c - 返回双精度的函数的值错误(libffi)

当函数返回其值时,似乎从 libffi 返回 double 数据类型的函数未正确转换,这是我使用的代码:

结果如下:13830464316077631000.000000

ffi_arg类型是 的别名unsigned long long。文档说明ffi_arg传递给ffi_call函数的类型参数,如果它小于 ,则用于存储数据sizeof(ffi_arg),否则它是指向内存中数据的指针:

sizeof(ffi_arg)对于非浮点类型,右值必须指向大于或等于的存储。对于较小的返回值类型, 必须使用ffi_argor整数类型来保存返回值。ffi_sarg

( https://manpages.debian.org/testing/libffi-dev/ffi_call.3.en.html )

所以我用指针取消引用尝试了它:

这使程序崩溃了。

我应该如何访问使用rc变量存储的值?

编辑 1

用于编译程序的命令行:

编译时没有错误或警告。

编辑 2

添加 `-Wall' 构建选项后,我得到:

这个警告似乎在libffi 示例中被忽略了。给出的示例对我来说非常有效(带有此警告)。

0 投票
0 回答
155 浏览

c - 引用自:/usr/local/opt/glib/lib/libgobject-2.0.0.dylib - 移植到 c (gtk/cairo) 的 bitlib 图形库

我正在(Darwin Aerosol.local 19.5.0 Darwin Kernel Version 19.5.0: Tue May 26 20:41:44 PDT 2020; root:xnu-6153.121.2~2/RELEASE_X86_64 x86_64)尝试编译C测试项目中编写的 - 移植到 c (gtk/cairo) 的 bitlib 图形库。来自回购:[https://github.com/bit101/bitlib_c][1]-我有以下libgobject-2.0.0.dylib正在寻找的问题,libffi.6.dylib但我已经有libffi.7.dylib,请参阅下面的日志,如何修复链接?

0 投票
5 回答
13583 浏览

ruby - 安装 travis-cli 时在 macOS 中找不到 libffi 的包配置

我正在尝试安装gem install travistravis-cli按照参考https://rubygems.org/gems/travis使用,但出现以下错误。

此处提到的尝试解决方案https://github.com/ffi/ffi/issues/653

framework/Versions/2.3/usr/include/ruby-2.3.0/ruby.h:33: /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr /include/ruby-2.3.0/ruby/ruby.h:24:10: 致命错误: 'ruby/config.h' 文件未找到#include "ruby/config.h" ^~~~~~~~~ ~~~~~~ 产生1个错误。检查的程序是: /* begin */ 1: #include "ruby.h" 2: 3: int main(int argc, char * framework/Versions/2.3/usr/include/ruby-2.3.0/ruby.h:33: /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr /include/ruby-2.3.0/ruby/ruby.h:24:10: 致命错误: 'ruby/config.h' 文件未找到#include "ruby/config.h" ^~~~~~~~~ ~~~~~~ 产生1个错误。检查的程序是: /* begin */ 1: #include "ruby.h" 2: 3: int main(int argc, char *argv) 4: { 5: 返回 0; 6: } /结束 */

任何帮助将不胜感激!尝试找出但没有帮助

0 投票
10 回答
18620 浏览

xcode - 安装 CocoaPods 时出错 - macOS BigSur

我正在学习如何编程,我正在尝试安装 Cocoapods,但我遇到了sudo gem install cocoapods.

这就是我得到的:

我知道有一句话说“你必须先安装开发工具”,起初确实如此。然后我安装了 Xcode 命令行工具(我不得不从 Apple Developer 手动下载它,因为该xcode-select --install行不起作用),并尝试再次安装 cocoapods。但即使在重新启动后,我也会遇到同样的错误。

它也有日志的路径,这就是它所说的:

所以,我被困住了。我目前正在使用 macOS Big Sur Beta 9 和 Xcode 12.0.1(非测试版)。

0 投票
1 回答
194 浏览

c++ - 通过 Homebrew 安装 ccls 输出与 libffi 和 llvm 相关的警告消息

我正在尝试设置我的 neovim C++ 开发环境,并想ccls用作我的 coc 语言服务器。

当我使用 安装时cclsHomebrew它会安装libffillvm作为依赖项。似乎ccls安装成功了,但似乎我需要配置PATH变量,LDFLAGS并且CPPFLAGS.

但我不知道libffiandllvm是干什么用的,他们提出了不同的LDFLAGSand CPPFLAGS,这令人困惑。

可以不导出任何变量来使用ccls吗?或者,我应该在我的 ? 中导出哪个版本~/.zshrc

下面是我的控制台输出brew install ccls

0 投票
3 回答
323 浏览

python - 重新编译 python 3 包时未拾取本地编译的 libffi 文件

在我需要在本地安装 Python 3 和一些相关软件包以启用 Tkinter 设置并使用 openpyxl 使用 GUI 设置读取/写入 .xlsx 文件的情况下。

  1. 首先,我在本地安装了 Python 3.9.1,当我尝试执行“import tkinter”时,它说找不到所需的模块。

  2. 然后在本地安装 tcl 和 tk 库并重新编译 Python 库,如下所示。在此步骤之后,安装了 Python 3,然后还构建了 tkinter 库等。

    ./configure --prefix=~/installed --with-tcltk-libs='-L~/installed/lib' --with-tcltk-includes='-I~/installed/include

  3. 接下来,我想在本地安装 openpyxl 以读取/写入 .xlsx 文件。所以我尝试使用 pip3 install openpyxl 安装,但它说

    “ModuleNotFoundError:没有名为 '_ctypes' 的模块”

  4. 尝试下载 libffi 并在本地安装。然后尝试使用以下命令重新编译 python 文件。

    ./configure --prefix=~/installed --with-tcltk-libs='-L~/installed/lib' --with-tcltk-includes='-I~/installed/include' LDFLAGS=`pkg-config --libs-only-L~/installed/lib/../lib64 -I~/installed/include

    但它无法获取相同的内容,并且在制作 python 文件期间,它说,“以下模块成功构建但由于无法导入而被删除:_ctypes”。

那么,如何确保获取所需/本地安装的 libffi 文件?请提供您的建议!

0 投票
1 回答
577 浏览

python - Buildozer 无法在 arm64/aarch64 CPU 上编译 libffi

我正在尝试在我的 Android 手机上运行 Buildozer。为此,我在 Termux App (Android 7) (redmi Note 4) 上使用 Arch Linux pRoot

由于 Google 仅分发 x86_64 版本的 NDK,我正在使用来自此 GitHub 存储库的 aarch64/arm64 Android NDK(版本 r21d)和 SDK:https ://github.com/Lzhiyong/termux-ndk

我正在使用来自 Arch Linux arm 存储库的 JDK 15。

出于测试目的,我使用了一个简单的 hello world 脚本,print("Hello")

当我运行buildozer -v android debug时,首先一切正常,它会下载东西然后尝试编译它。其他一切都成功编译,除了libffi.

到目前为止我尝试过的:-

  1. 我尝试为 armeabi-v7a 和 arm64-v8a 编译,都失败了。
  2. 我尝试通过 pacman 安装 libffi,没有效果。
  3. 我尝试创建 Github 问题,没有回复。
  4. 我试图询问堆栈溢出,收到很多反对意见,说所有日志和代码都应该粘贴在有问题的问题上,而不是在外部网站上,删除旧问题。

这是我的buildozer.spec文件:-

libffi编译失败时出现以下错误:-

这是 config.log :-

任何帮助?

0 投票
0 回答
292 浏览

python - 从缺少'_ctypes'的源代码构建Python3.9.2

我有一个与我在这里能够解决的问题类似的问题,在 docker 容器中构建 Python3.9.2 时,构建成功完成但缺少 ctypes

ModuleNotFoundError: No module named '_ctypes'

尝试上述帖子中的相同方法没有成功,我什至尝试安装最新的 libffi-3.3,结果相同,所有 libffi 头文件和库都已到位。

似乎只_ctypes_test构建了共享对象。

我找到了一些关于此的门票,但对我没有任何帮助:

知道如何使它适用于最新的 Python 3.9 吗?

更新: 在 Python 3.7.10 和 3.8.8 上测试,它似乎工作正常,所以它可能在 3.9 上发生了变化。*

更新 2:_ctypes.cpython-39-x86_64-linux-gnu.so从预建的 docker 中获取文件pyhton:3.9.2-slim并将其放入我的容器中/usr/local/lib/python3.9/lib-dynload/_ctypes_test.cpython-39-x86_64-linux-gnu.so并且它可以工作,import ctypes没有引发此错误(我必须使用libffi-3.2.1而不是构建 python 3.3)。为什么我无法make构建_ctypes

0 投票
0 回答
67 浏览

ruby-on-rails - 由于 LoadError,Rails 无法启动(找不到存在的文件)

我在 ubuntu 20.04 上有一个一直运行到上个月的 rails 应用程序。但是证书问题让我重新安装了 nginx 和乘客以及一些依赖项。

但是,所有 rails 命令 ( console, server, assets:precompile) 现在都失败并出现以下错误

但是当我检查时,一切似乎都很好..文件确实存在:

关于如何让应用程序再次运行的任何想法?

0 投票
0 回答
130 浏览

python-3.x - 完成任务时出错

Pop!_OS 20.10 当我尝试启动 Lutris 时,它卡在“Lutris 正在启动”屏幕上。那是启动时的错误。

我还检查了 libffi 包:libffi8ubuntu1libffi-dev


如何将输入图像转换为 3D 图像格式

我正在尝试用 C 编写图像旋转代码。

我正在阅读所见的图像。我想将这些图像数据转换为 3D(行、列、通道)数组格式,以便能够做到这一点: