blob: 34076d669b1d0e2fd9581ff3a47530f246e8bed2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
## Usage Video
[](https://asciinema.org/a/133693)
## Create Project
```bash
$ xmake create -l c -P ./hello
```
And xmake will generate some files for c language project:
```
hello
├── src
│ └── main.c
└── xmake.lua
```
It is a simple console program only for printing `hello xmake!`
The content of `xmake.lua` is very simple:
```lua
target("hello")
set_kind("binary")
add_files("src/*.c")
```
Support languages:
* c/c++
* objc/c++
* cuda
* asm
* swift
* dlang
* golang
* rust
<p class="tip">
If you want to known more options, please run: `xmake create --help`
</p>
## Build Project
```bash
$ xmake
```
## Run Program
```bash
$ xmake run hello
```
## Debug Program
```bash
$ xmake run -d hello
```
It will start the debugger (.e.g lldb, gdb, windbg, vsjitdebugger, ollydbg ..) to load our program.
```bash
[lldb]$target create "build/hello"
Current executable set to 'build/hello' (x86_64).
[lldb]$b main
Breakpoint 1: where = hello`main, address = 0x0000000100000f50
[lldb]$r
Process 7509 launched: '/private/tmp/hello/build/hello' (x86_64)
Process 7509 stopped
* thread #1: tid = 0x435a2, 0x0000000100000f50 hello`main, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
frame #0: 0x0000000100000f50 hello`main
hello`main:
-> 0x100000f50 <+0>: pushq %rbp
0x100000f51 <+1>: movq %rsp, %rbp
0x100000f54 <+4>: leaq 0x2b(%rip), %rdi ; "hello world!"
0x100000f5b <+11>: callq 0x100000f64 ; symbol stub for: puts
[lldb]$
```
<p class="tip">
You can also use short command option, for example: `xmake r` or `xmake run`
</p>
|