first commit

This commit is contained in:
corey 2024-01-09 13:04:47 -06:00
commit 1ecdc57a75
4 changed files with 36 additions and 0 deletions

4
.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
example
/*.o
/*.a
/*.swp

14
Makefile Normal file
View File

@ -0,0 +1,14 @@
CFLAGS= -Wall -Wextra -Wfatal-errors -g3
LDFLAGS= -s
OBJS=
RSFLAGS= --target=x86_64-unknown-linux-gnu --crate-type=staticlib
all: example
example: main.o librs.a
$(CC) $(LDFLAGS) $^ -o $@
lib%.a: %.rs
rustc --target=x86_64-unknown-linux-gnu --crate-type=staticlib $^
%.o: %.c
$(CC) $(CFLAGS) -c $^
clean:
$(RM) $(OBJS) example *.o librs.a

8
main.c Normal file
View File

@ -0,0 +1,8 @@
#include<stdio.h>
extern int ok(int*x);
int main(void)
{
int a[]={2,3,4};
printf("ok:%d\n",ok(a));
}

10
rs.rs Normal file
View File

@ -0,0 +1,10 @@
#[no_mangle]
pub extern "C" fn ok(x:&[i32;3])->i32
{
let mut y:Vec<i32>=vec![5;15];
unsafe
{
y[0]=x[2];
}
return y[0];
}