No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Creando un nuevo proyecto en Rust

5/20
Recursos

Cuando instalas un nuevo lenguaje de programaci贸n o tecnolog铆a, la primera tarea es realizar el conocido 鈥淗ola Mundo鈥 para corroborar que todo est茅 funcionando correctamente.

Hola Mundo con Rust

En Rust, crear tu primer proyecto es s煤per sencillo. Basta con utilizar el comando cargo new . El CLI de Rust crear谩 los siguientes archivos:

Screenshot from 2022-07-11 10-47-07.png

De arriba hacia abajo:

  • src: Directorio principal con todo el c贸digo fuente del proyecto.
  • main.rs: Archivo principal para lanzar el proyecto.
  • .gitignore: Archivo para indicarle a GIT qu茅 archivos/directorios ignorar.
  • Cargo.toml: Archivo que contiene la metadata y dependencias del proyecto.

El archivo main.ts contiene un c贸digo muy sencillo para ejecutar tu primer proyecto en Rust.

fn main() {
    println!("Hello, world!");
}

Con el comando cargo run, deber铆as visualizar Hello, world! en la terminal de comandos.

隆Felicidades! Ya has realizado tu primera ejecuci贸n de un proyecto en Rust.


Contribuci贸n creada por: Kevin Fiorentino.

Aportes 20

Preguntas 5

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Estoy usando WSL y en el proyecto adem谩s de crearse Cargo.toml, se inicializ贸 GIt

Que bonita sorpresa 馃槂

Si trabajan con windows les aconsejo hacerlo con wsl ya que visual studio build da dolor de cabeza y muchos problemas

Felicidades a todos por su tal vez primer hola mundo en Rust鈥 Bueno, Hola Platzi.

La funcion main() es una funcion especial en el entorno de Rust, esta funcion es la encargada de arrancar la aplicacion en todos los programas o aplicaciones desarrollados con este lenguaje

Si ya han creado la carpeta del proyecto pueden hacer cargo init en vez de cargo new <project> para que no les cree una subcarpeta sino que ponga el src y el Cargo.toml directamente en la carpeta donde se encuentran.

Si alguien tiene el problema de no poder compilar aqui se explica como solucionarlo en WSL

Un hack pueden abrir la terminal con ctrl + 帽

Consejo para los que estan tomando este curso de absoluto cero y es la primera vez que trabajan con VisualStudioCode (VSC):
no olviden guardar los cambios con ctrl + s para que se muestren esos cambios en la terminal, veran que se ilumina un punto blanco cuando le hacen cualquier tipo de cambio.

lo menciono porque en todos los cursos de cualquier lenguaje siempre omiten decir que se debe guardar y con que teclas se ejecuta el guardado 馃槉

@hackquiarom
gracias

Para ejecutar el proyecto desde la terminal escribir
cargo run
Resultado

   Compiling platzi-curso v0.1.0 (/rust/platzi-curso)
    Finished dev [unoptimized + debuginfo] target(s) in 0.28s
     Running `target/debug/platzi-curso`
Hello, world!

y la estructura del proyecto muestra todo esto

(base) [email protected]:~/rust/platzi-curso$ ls -lR
.:
total 16
-rw-rw-r-- 1 yomero yomero  156 ago 20 14:53 Cargo.lock
-rw-rw-r-- 1 yomero yomero  181 ago 20 14:51 Cargo.toml
drwxrwxr-x 2 yomero yomero 4096 ago 20 14:51 src
drwxrwxr-x 3 yomero yomero 4096 ago 20 14:53 target

./src:
total 4
-rw-rw-r-- 1 yomero yomero 45 ago 20 14:51 main.rs

./target:
total 8
-rw-rw-r-- 1 yomero yomero  177 ago 20 14:53 CACHEDIR.TAG
drwxrwxr-x 7 yomero yomero 4096 ago 20 14:56 debug

./target/debug:
total 3792
drwxrwxr-x 2 yomero yomero    4096 ago 20 14:53 build
drwxrwxr-x 2 yomero yomero    4096 ago 20 14:56 deps
drwxrwxr-x 2 yomero yomero    4096 ago 20 14:53 examples
drwxrwxr-x 5 yomero yomero    4096 ago 20 14:56 incremental
-rwxrwxr-x 2 yomero yomero 3859376 ago 20 14:56 platzi-curso
-rw-rw-r-- 1 yomero yomero     117 ago 20 14:56 platzi-curso.d

./target/debug/build:
total 0

./target/debug/deps:
total 3784
-rw-rw-r-- 1 yomero yomero       0 ago 20 14:53 libplatzi_curso-1e07cfa96523b6c4.rmeta
-rw-rw-r-- 1 yomero yomero       0 ago 20 14:53 libplatzi_curso-4b9f6b89c3f4a846.rmeta
-rw-rw-r-- 1 yomero yomero     223 ago 20 14:53 platzi_curso-1e07cfa96523b6c4.d
-rw-rw-r-- 1 yomero yomero     223 ago 20 14:53 platzi_curso-4b9f6b89c3f4a846.d
-rwxrwxr-x 2 yomero yomero 3859376 ago 20 14:56 platzi_curso-b3fcc9d8587c7101
-rw-rw-r-- 1 yomero yomero     217 ago 20 14:56 platzi_curso-b3fcc9d8587c7101.d

./target/debug/examples:
total 0

./target/debug/incremental:
total 12
drwxrwxr-x 3 yomero yomero 4096 ago 20 14:53 platzi_curso-1kd1hfoqtyd2s
drwxrwxr-x 3 yomero yomero 4096 ago 20 14:56 platzi_curso-30uhnpr5x5v5k
drwxrwxr-x 3 yomero yomero 4096 ago 20 14:53 platzi_curso-37u0s7tmemup9

./target/debug/incremental/platzi_curso-1kd1hfoqtyd2s:
total 4
drwxrwxr-x 2 yomero yomero 4096 ago 20 14:53 s-gcrgcb42eg-1x3k6fj-24kvvvm5mw5xd
-rwx------ 1 yomero yomero    0 ago 20 14:53 s-gcrgcb42eg-1x3k6fj.lock

./target/debug/incremental/platzi_curso-1kd1hfoqtyd2s/s-gcrgcb42eg-1x3k6fj-24kvvvm5mw5xd:
total 64
-rw-rw-r-- 1 yomero yomero 34162 ago 20 14:53 dep-graph.bin
-rw-rw-r-- 1 yomero yomero 20971 ago 20 14:53 query-cache.bin
-rw-rw-r-- 1 yomero yomero    37 ago 20 14:53 work-products.bin

./target/debug/incremental/platzi_curso-30uhnpr5x5v5k:
total 4
drwxrwxr-x 2 yomero yomero 4096 ago 20 14:56 s-gcrgelmw9i-qjkck4-3c0e61urk8r6c
-rwx------ 1 yomero yomero    0 ago 20 14:56 s-gcrgelmw9i-qjkck4.lock

./target/debug/incremental/platzi_curso-30uhnpr5x5v5k/s-gcrgelmw9i-qjkck4-3c0e61urk8r6c:
total 168
-rw-rw-r-- 1 yomero yomero  9536 ago 20 14:56 122jwq2ytdwpwna5.o
-rw-rw-r-- 1 yomero yomero  4608 ago 20 14:56 13ae89ygf1rtd8xc.o
-rw-rw-r-- 1 yomero yomero  6984 ago 20 14:56 1wwi7m72ahqetgwr.o
-rw-rw-r-- 1 yomero yomero  3160 ago 20 14:56 1ytu7juna3q1uq8z.o
-rw-rw-r-- 1 yomero yomero  7648 ago 20 14:56 36t22ymn6gv0dede.o
-rw-rw-r-- 1 yomero yomero  4768 ago 20 14:56 4w005rjywvu38mtx.o
-rw-rw-r-- 1 yomero yomero 79487 ago 20 14:56 dep-graph.bin
-rw-rw-r-- 1 yomero yomero  4128 ago 20 14:56 in4aoc5qp85yj9g.o
-rw-rw-r-- 1 yomero yomero  3672 ago 20 14:56 pthzp219cra87mm.o
-rw-rw-r-- 1 yomero yomero 24473 ago 20 14:56 query-cache.bin
-rw-rw-r-- 1 yomero yomero   465 ago 20 14:56 work-products.bin

./target/debug/incremental/platzi_curso-37u0s7tmemup9:
total 4
drwxrwxr-x 2 yomero yomero 4096 ago 20 14:53 s-gcrgcb42cn-15p76a6-12g2dswvbo7a6
-rwx------ 1 yomero yomero    0 ago 20 14:53 s-gcrgcb42cn-15p76a6.lock

./target/debug/incremental/platzi_curso-37u0s7tmemup9/s-gcrgcb42cn-15p76a6-12g2dswvbo7a6:
total 56
-rw-rw-r-- 1 yomero yomero 28710 ago 20 14:53 dep-graph.bin
-rw-rw-r-- 1 yomero yomero 19797 ago 20 14:53 query-cache.bin
-rw-rw-r-- 1 yomero yomero    37 ago 20 14:53 work-products.bin

```

Si est谩s en Mac y te aparece

error: linking with `cc` failed: exit status: 1 

Intenta, en tu terminal, usar el comando

xcode-select --install

Puede que te est茅n faltando unas dependencias para compilar 馃槉

PD: Si estas en linux y te sale el error: linker cc not found. Sigan este link: https://stackoverflow.com/questions/52445961/how-do-i-fix-the-rust-error-linker-cc-not-found-for-debian-on-windows-10

para crear un proyecto desde la terminal

cargo new platzi-curso

y el resultado es

Created binary (application) `platzi-curso` package

Si estan en windows con wsl o linux y les sale el error de :

error: linker `cc` not found
  |
  = note: No such file or directory (os error 2)

Usa este comando de linux para solucionarlo
sudo apt install build-essential

隆Que gran forma de iniciar!

No se escucha

si quiere abrir la terminal con atajo de teclado haz lo siguiente:

// teclado espa帽ol
ctrl + 帽
// teclado ingles 
ctrl + `

Es bastante facil empezar un proyecto en Rust, a seguir

fn main() {
    let name: &str = "Maycol";
    let age: u8 = 31;

    let min_temp: i8 = -21;
    let max_temp: i8 = 38;

    say_hello(name, age);
    print_temp(min_temp, max_temp);
}

fn say_hello(name: &str, age: u8) {
    return println!("Hello {}, tu edad es de {}", name, age)
}

fn print_temp(min_temp: i8, max_temp: i8) {
    return println!("La temperatura maxima en Deggendorf fue de {} y la mas alta fue de {}", min_temp, max_temp)
}