Как связать пользовательские c-файлы с Rust после преобразования Bindgen?

Привет, извините, если на этот вопрос уже был дан ответ, но я читал похожие проблемы, и эти решения не устранили мою проблему. Я хочу связать пользовательские файлы.c с проектом Rust в ОС Ubuntu. Я прошел через руководство по 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), который содержит одну простую функцию. Затем я создаю файл.so (libtest.so) и создаю файл.config, который я использовал

sudo ld config

а также

sudo ld config -v

и подтвердил, что моя библиотека видна ld:

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

Я сравнил свой.toml с.toml из примера, который работал успешно, и они выглядят одинаково.

Первоначально у меня была эта проблема с примером bindgen, и я исправил ее, правильно загрузив библиотеку разработчика с помощью

sudo apt-get install libbz2-dev

вместо извлечения из архива, поэтому я уверен, что проблема в том, что мне не хватает файла или я помещаю его не в то место, но я не совсем понимаю, что это будет.

0 ответов

Другие вопросы по тегам