草庐IT

argon2-ffi

全部标签

Conda虚拟环境下libp11-kit.so.0: undefined symbol: ffi_type_pointer...问题解决

Conda虚拟环境下libp11-kit.so.0:undefinedsymbol:ffi_type_pointer...问题解决1背景说明2报错原因3解决方法4补充说明1背景说明最近需要在Conda虚拟环境下运行ROS相关代码,其中在运行代码importmoveit_commander时,返回报错ImportError:/lib/x86_64-linux-gnu/libp11-kit.so.0:undefinedsymbol:ffi_type_pointer,versionLIBFFI_BASE_7.0。由于在网上没有找到和我一样的问题,且在github上也没找到解决方法,以为是个例就没打算

ruby - 在 Ruby FFI 中分配给嵌套结构成员

考虑以下两个FFI结构:classA实例化它们:a=A.newb=B.new现在,当我尝试像这样将a分配给b.nested时:b[:nested]=a我收到以下错误:ArgumentError:putnotsupportedforFFI::StructByValue如果嵌套结构是“按值嵌套”,那么FFI似乎不允许您使用[]语法进行赋值,也就是说它不是指针。如果是这样,我该如何将a分配给b.nested? 最佳答案 当您使用FFI嵌套时,它可以像这样工作:b=B.newb[:nested][:data]=42b[:nested][:d

c++ - 在 haskell 的 FFI 后面使用 stdout/stderr/stdin 流

我正在开发一个小的haskell程序,它使用我用C++开发的外部静态库。它通过ghc的FFI(外部函数接口(interface))访问库。在这个库中,我想对控制台进行一些输出。但是,在我看来,看起来事物的C++端没有正确的stdout句柄,因为输出没有出现在控制台上。那么,我的问题是:是ghc劫持了这三个流(stdout、stdin、stderr)还是libstdc++只是因为我正在与ghc链接而没有初始化它们?如果我的FFI导入写入标准输出,它们是否需要“安全”?如何将标准输出传递给C函数?我应该直接传递它还是需要C类型?附加说明:我将libstdc++直接链接到可执行文件(即ghc

为 Ruby FFI 接口(interface)从字符串转换为 const char* 时的 C++ 字符编码

我正在使用一个外部C++库,它执行一些HTTPS通信并提供XML服务器响应。在服务器端,响应是通过ISO-8859-15编码的,我得到一个std::string表示来自API的响应。当我打印出来/将其写入文件时,它看起来是正确的。必须将std::string和int错误代码传递给我的外部调用方。所以我在结构中返回这两个值:extern"C"{structFoobarResponse{constchar*responseText;intreturnCode;};}不幸的是,我必须借助std::c_str()将std::string响应转换为constchar*C风格的字符串表示形式之前。

java - 在 Android 应用程序中使用 argon2 会出现 UnsatisfiedLinkError

我想使用Argon2在我尝试制作的这个Android应用程序中。该存储库的README部分列出了this作为官方JVM绑定(bind),我开始将其包含在我的应用程序中。我通过在我的gradle文件[1]中包含给定的代码来做到这一点。我编写了一些示例代码来利用此库[2],但在运行代码时,它会抛出Java.lang.UnsatisfiedLinkError并退出。谁能告诉我如何解决这个问题?[1]:repositories{maven{url"https://dl.bintray.com/phxql/maven"}}dependencies{compile'de.mkammerer:arg

c++ - 在 Haskell 中捕获 C++ FFI 异常失败

在Haskell中使用FFI到C++时,在cabalrepl中运行函数时我能够正确捕获异常,但是在使用cabalrun运行时,异常是没有被抓到。一个简单的cabal项目展示了这个问题如下:exception.cabal:name:exceptionversion:0.1.0.0build-type:Simplecabal-version:>=1.10executableexceptionmain-is:Main.hsc-sources:main.cxxbuild-depends:base>=4.7&&主.cxx:#include#includeextern"C"inths_except

c++ - 为什么 Rust 函数和 FFI C++ 函数以相反的顺序执行?

我试图将一个外部C++函数与我的Rust应用程序链接起来。此函数有效,但它的执行顺序与从Rust代码调用时的顺序不同。为什么会这样?这有记录吗?这是Rust应用程序的list:externcratelibc;uselibc::c_int;#[link(name="Project1",kind="static")]extern"C"{pubfnlib_fun(i:c_int)->c_int;}fnmain(){unsafe{lib_fun(2);}println!("fromRust:{}",2);}“项目1”库如下所示:#includeextern"C"{intlib_fun(intt

c++ - FFI/MemoryPointer 内存分配

我一定是遗漏了什么。我一直在阅读有关FFI的文章,但似乎无法就此得到明确的答案。假设我有以下C++函数:extern"C"{intReturnAnArrayOfStrings(constchar*arrayOfStrings[]){if(NULL==arrayOfStrings)returnsomeCharList.size();for(autoiter=someCharList.begin(),autoindex=0;iter!=someCharList.end();++iter,++index){char*allocatedHere=newchar[strlen(*iter)];/

php - PHP7 中的 Argon2 算法 : understanding the time_cost parameter

我正在尝试在身份验证库中实现Argon2算法。我希望能够为用户设置参数提供一些有用的提示。虽然我了解memory_cost和threads参数如何影响算法,但我似乎无法理解time_cost参数。什么PHPdocsays:time_cost(integer)-MaximumamountoftimeitmaytaketocomputetheArgon2hash.DefaultstoPASSWORD_ARGON2_DEFAULT_TIME_COST.Interrogation1-默认值为2。它似乎代表一个时间,遗憾的是,单位似乎丢失了。是几秒钟吗?毫秒?这个SOanswer表示默认值为2秒

c - Go 中的动态 FFI

是否可以动态加载外部C库(dll)并在Go中调用其函数?我知道有cgo用于静态绑定(bind)到C函数,但我对动态方式感兴趣。 最佳答案 简短的回答:不。(至少不使用gc,但是gccgo是gcc可链接的,所以它可能是可能的)中等答案:但是,您可以静态绑定(bind)libffi或libdl,然后使用it动态加载其他库。长答案:您可以使用gotoolchainsC编译器和汇编器在C和ASM中编写go包(例如,参见src/pkg/runtime)。因此,您可以使用C或ASM编写FFI作为go包。编辑:来自下面的评论(现在也是CW)或者,