Когда вы изначально создаете свой проект, вы можете просто использовать cargo new (или init), чтобы получить правильный тип
cargo new my_project_name
# OR create a lib project
cargo new --lib my_library_name
, когда вы используете rustc, вы можете использовать параметр командной строки
rustc lib.rs
# lib.rs has to contain a main function
# OR to build a lib
rustc --crate-type=lib lib.rs
Ваш вывод об общем объекте вводит в заблуждение поиск ошибок: https://askubuntu.com/questions/690631/executables-vs-shared-objects - это не проблема, исполняемый файл может быть общим объектом.
Я думаю, что в вашем случае проблема в другом,Что вы делаете в двоичном формате?Просто печатает что-то через stdout и все?Возможно, по этой причине двойной щелчок в графическом браузере GUI ничего не показывает, он выполняется за миллисекунду и заканчивается до того, как вы это узнаете.
Вы пытались дождаться ввода в конце основной функции?Просто для того, чтобы пользователь мог прочитать вывод и нажать клавишу Return.
use std::io;
fn main() {
// do and print stuff
// Wait for return key
let mut input = String::new();
match io::stdin().read_line(&mut input);
}
Не уверен, как Thunar справится с этим, но в итоге он откроет терминал и покажет результат и закроет терминал, когда нажата клавиша Enter.