Bindgen转换后如何将自定义c文件链接到Rust?

时间:2020-07-31 15:52:48

标签: rust ld extern bindgen

对不起,如果以前已回答过此问题,但我阅读了类似的问题,而这些解决方案未能解决我的问题。我想将自定义.c文件链接到Ubuntu OS上的Rust项目。我阅读了Bindgen教程,并能够成功构建和运行它,因此我知道我的工具链能够将extern C文件链接到Rust程序。 Bindgen成功生成了bindings.rs文件,因此没有问题。尝试使用以下命令时出现以下错误:

cargo build

  = note: /bin/ld: cannot find -ltest
          collect2: error: ld returned 1 exit status
          

基本上,我做了一个非常简单的C文件(test.c),其中包含1个简单函数。然后,我构建.so文件(libtest.so)并创建我使用的.config文件

sudo ld config

sudo ld config -v

并确认我的图书馆对ld可见:

/home/fred/mylib:
    
libtest.so.1 -> libtest.so.1

我将.toml与成功运行的示例中的.toml进行了比较,它们看起来相同。

我最初在bindgen示例中遇到了这个问题,并通过正确的方式下载dev库来解决了这个问题

sudo apt-get install libbz2-dev

不是从压缩包中提取文件,所以我确信问题是我丢失了文件或将其放在错误的位置,但是我对文件的内容感到很困惑。

0 个答案:

没有答案