How does rust use cargo to create lib?

I tried to use cargo new --lib restaurant to create a lib
but an error was reported when compiling:
no main function was found in a binary crate.
After checking, I found that the rust application I created was a binary application instead of a lib. But if I directly use clion to create a lib, it can compile successfully. I want to know what should I do if I want to use cargo to create a lib?

I don't know what went wrong with your library, but any project with a file is considered a binary crate and is required to have a main function. Did you perhaps rename the file to

I did not change the name of the file to If I use cargo to create the lib, then will require me to have a main function as the program entry, and prompt me that the program is a binary program, but in reality I want to create a library instead of an executable program. Using clion to create a lib will not cause this error. My does not need to include a main function and can be compiled

The only difference between cargo new --bin and cargo new --lib is that the former gives you placeholder src/ and the latter gives you a placeholder src/ At least, with my vanilla setup.

Is there a [[bin]] section in your Cargo.toml?

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.