问题标签 [c-libraries]

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 投票
0 回答
72 浏览

android - 在 Android 应用上使用 libdvbpsi 获取 EPG 信息

我正在开发一个应用程序以在带有 Android 的机顶盒上运行。这个应用程序有一个媒体播放器来播放多播 IPTV 流。我按照官方的 java_sample 使用 LibVLC 和VLCVideoLayout。我想获取 EPG 信息,似乎libdvbpsi可以完成这项工作。但它是一个 C 库,我不知道如何将它导入我的 Android 应用程序。

我找到了这个用于 android 库的 libdvbpsi,但我不明白如何使用它。

我的开发环境:

  • 视窗 10 专业版。
  • 安卓工作室 4.1.2。

那么如何在 Android 应用上使用 libdvbpsi 呢?

0 投票
1 回答
145 浏览

go - 链接反对静态 32 位第 3 方库

我正在使用下面的标志

当我编译时

编译器因错误而失败

这意味着它发现 libcluto.a 不兼容,因为它是一个 32 位库,而我的系统正在编译 Go 到 amd64 架构。

但是当我编译时

在定义了“import "C"”的同一源文件中定义的方法被简单地忽略。

我检查了反射,该方法不存在:

上面的代码产生以下输出:

在我看来,当我设置 GOARCH=386 时,它会禁用 CGO,默默地忽略任何引用 C 符号的代码。

那么,如何将 Go 静态链接到 32 位 (.a) 库?

0 投票
1 回答
67 浏览

python - 在 ProQuest 的 TDM Studio(使用 AWS SageMaker 服务器)中安装附魔 C 库

我在 AWS SageMaker 中安装安装附魔 C 库时遇到问题。我按照以下步骤操作(我使用 os.system 将命令从 jupyter-notebook -in python language- 发送到终端,并使用 os.popen -for got outputs of terminal- ):

(1)要求“附魔 C 库”回购:

上一个片段的答案是:

(2) 安装 enchant-1.6.0-5.2.amzn1.x86_64 包:

上一个片段的答案是:

所以,最后一步就足以安装附魔 C 库,但是当我尝试在 python 中导入附魔时,我得到以下输出:

0 投票
2 回答
85 浏览

java - JNA 的行为与我的 C# 对应物不同,为什么?

我正在为一块硬件开发一些东西,并且我有一个 C 库来与硬件通信。我有向硬件发送信号的方法(比如打开灯泡),并且使用 JNA 在 C# 和 Java 上都可以正常工作。

该机器还有一个可按下的按钮,当按下该按钮时,它将记录一个信号,该信号可以通过称为 A 的方法检索。

预期的工作方式是创建一个新线程,该线程一直调用此方法,直到它返回 1 在这种情况下,它将获得有关按钮按下的信息。

我已经使用以下代码在 C# 中工作:

在 C# 中导入该方法的位置,例如:

我希望这段代码也能在 Java 上工作。不幸的是,当我使用 java 运行它时,它永远不会返回 1,这与 C# 实现不同。

我想知道我是否做错了什么,因为我没有使用 JNA 的经验。在Java中,我导入这样的方法:

我尝试像这样运行代码:

在我拥有的有关此方法的文档中,它在 C 中定义,例如:

有谁知道为什么 C# 示例有效但 Java 示例无效?

--编辑 25-08-2021 12:04

文档说使用了提供给该方法的参数。所以我想如果它们以某种方式为空,该方法将不会返回任何东西。也许使用 ByReference 对象的初始化是错误的?

--编辑 26-08-2021

我得到了 C++ 签名,它是:

0 投票
1 回答
66 浏览

c++ - 将 unique_ptr()::get() 返回的原始指针传递给以双指针作为函数参数的函数

代码编辑:https ://gcc.godbolt.org/z/x3hnj46WY

场景 -1 试图通过引用(或指针)传递原始指针无法使用 & 将 get() 的值传递给 setBuffer() // 编译错误:lvalue required as unary '&' 操作数

场景 -2 通过获取原始字符指针分配值返回 使用 & 将字符指针传递给 setBuffer()

注意:setBuffer() 存在于 C 库中我正在使用此 API https://www.libssh2.org/libssh2_session_last_error.html来获取 errmsg,而不是使用 char 数组缓冲区,我想使用 char 数组的智能指针。