Napisałem program Nim,Nim krzyż kompilacji do C
echo("Hello.")
A potem próbował przejechać kompilacji na komputerze z systemem Linux,
nim c --cpu:i386 --os:linux -c hello.nim
Ten produkowany następujący wynik:
config/nim.cfg(45, 2) Hint: added path: '/Users/connor/.babel/pkgs/' [Path]
config/nim.cfg(46, 2) Hint: added path: '/Users/connor/.nimble/pkgs/' [Path]
Hint: used config file '/usr/local/lib/nim-0.10.2/config/nim.cfg' [Conf]
Hint: system [Processing]
Hint: hello [Processing]
Hint: operation successful (8753 lines compiled; 0.140 sec total; 14.148MB)[SuccessX]
W tym momencie zmieniłem katalog na nimcache/
i próbowałem wykonać:
gcc hello.c -o hello.o
Ale dał mi błąd:
hello.c:5:10: fatal error: 'nimbase.h' file not found
#include "nimbase.h"
^
1 error generated.
Pomyślałem: „nic wielkiego, po prostu znaleźć nimbase.h
i upuść go w katalogu tam nimcache
”, ale potem dostałam nowy błąd,
In file included from hello.c:5:
./nimbase.h:385:28: error: 'assert_numbits' declared as an array with a
negative size
...sizeof(NI) == sizeof(void*) && NIM_INTBITS == sizeof(NI)*8 ? 1 : -1];
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
Nie jestem pewien, co mam z tym zrobić. Próbowałem użyć opcji --genScript
, ale to spowodowało podobne błędy. Używam systemu OS X Yosemite.
Dzięki!
Aktualizacja:
I nie był pewien, jak wielu architekturach wspierane były dla opcji --cpu:
, ale znalazłem (częściowe?) Wykaz na stanowisku What makes Nim practical blogu. Skończyło się na wywołaniu,
To zapobiegło wystąpieniu błędu podczas kompilacji na moim komputerze z systemem Linux. Jeśli używasz systemu Linux lub OS X nie wiesz, co Twój architektura procesora jest można nazwać,
less /proc/cpuinfo
Docs powiedzieć, że „wygenerowany kod C nie jest niezależna od platformy C kod wygenerowany dla systemu Linux nie kompiluje się na przykład w systemie Windows. " i "przenieś kod C i skrypt kompilacyjny compile_myproject.sh do twojego komputera z systemem i386". Więc może nie możesz tego zrobić na OS X. – Thilo
O tak, pamiętam, że to czytałem. Wrzuciłem 'nimcache' (z' nimbase.h') do mojego komputera z linuxem i ponownie otrzymałem ostatni błąd. Czy nadal coś mi brakuje? – cjohnson318