Hallo,
ich habe ein Problem, wenn ich in nvim mein Projekt baue und es dann zu
compilerfehler kommt.
Ich habe einen Ordner wo der Code an für sich drinn liegt und parallel
eine Ordner, wo die Makefile drinn liegt.
1 | HAL
|
2 | - .git
|
3 | - _build
|
4 | - APPL
|
5 | - SBC
|
6 | - BUTTON
|
7 | - ...
|
8 | - doc
|
9 | - Project
|
10 | - ...
|
in nvim habe ich mir verschiedene Pfadvariablen angelegt
1 | let s:project = "HAL"
|
2 | let g:prHome="C:/Work/Project/HAL"
|
3 | let g:pr1="C:/Work/Project/HAL"
|
4 | let g:pr2="C:/Work/Project/HAL"
|
5 | let g:pr3="C:/Work/Project/HAL/Project"
|
6 | let g:pr4=""
|
7 | set tags=C:/Work/Project/HAL/.ctags
|
wobei in g:pr3 die Makefile liegt.
Wenn ich jetzt das Projekt baue, rufe ich folgende Funktion auf
1 | function! DoRebuildBatchFile(...)
|
2 |
|
3 | cclose
|
4 | echo "build " g:projectName
|
5 |
|
6 | "save the current working directory so we can come back
|
7 | let l:starting_directory = getcwd()
|
8 |
|
9 | execute("cd " . g:pr3)
|
10 | " set build parameter
|
11 | set makeprg=rebuild.bat
|
12 | for item in a:000
|
13 | if (item == "wheel")
|
14 | set makeprg+=\ wheel
|
15 | elseif (item == "debug")
|
16 | set makeprg+=\ debug
|
17 | endif
|
18 | endfor
|
19 |
|
20 | "Async
|
21 | Dispatch
|
22 | "" Open the output buff
|
23 | echo 'Build started'
|
24 | "reset directory
|
25 | execute "cd " . l:starting_directory
|
26 | endfunction
|
Damit wird mein Projekt gebaut.
Wenn ich jetzt aber einen Compilerfeher habe, bekomme ich im output
buffer
z.b.
1 | || ../../APPL/SBC/spi_TLE94x1_SBC.c: In function 'sbcInit_s32':
|
2 | ..\..\APPL\SBC\spi_TLE94x1_SBC.c|70 col 5| error: unknown type name 'SBC_ErrorCode'
|
3 | || SBC_ErrorCode errCode;
|
Wenn ich nun auf dem Error klicke, öffnet sich ein leerer Tab.
Das passiert, da der Pfad falsch ist (gehe ich zumindest von aus).
von meinem Home-Verzeichnis liegt der Fehler in
1 | APPL/SBC/spi_TLE94x1_SBC.c: In function 'sbcInit_s32':
|
von dem Verzeichnis, wo die Makefile liegt, liegt die Datei
1 | ../APPL/SBC/spi_TLE94x1_SBC.c: In function 'sbcInit_s32':
|
Wie bekomme ich es hin, dass mir der richtige Pfad angezeigt wird?
Momentan suche ich immer nach der Datei, öffne diese und springe dann
zur zeile die mir angegeben wird.
Schöner ist es aber, wenn ich direkt auf den Fehler klicken kann und
dann direkt zur richtigen Stelle hinspringe.