Tôi đã viết một chương trình Nim,Nim chéo biên soạn C
echo("Hello.")
Và sau đó tôi đã cố gắng để vượt qua biên dịch cho một máy Linux,
nim c --cpu:i386 --os:linux -c hello.nim
này được sản xuất đầu ra sau đây:
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]
Tại thời điểm này tôi đã thay đổi thành thư mục nimcache/
và cố gắng thực hiện:
gcc hello.c -o hello.o
Nhưng điều đó đã cho tôi một lỗi:
hello.c:5:10: fatal error: 'nimbase.h' file not found
#include "nimbase.h"
^
1 error generated.
Tôi nghĩ, "không có vấn đề gì, tôi sẽ chỉ tìm nimbase.h
và thả nó trong nimcache
thư mục đó," nhưng sau đó tôi nhận được một lỗi mới,
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.
Tôi không chắc mình phải làm gì với điều đó. Tôi đã cố gắng sử dụng tùy chọn --genScript
, nhưng điều đó dẫn đến lỗi tương tự. Tôi đang chạy OS X Yosemite.
Cảm ơn!
Cập nhật:
Tôi đã không chắc chắn có bao nhiêu kiến trúc được hỗ trợ cho các tùy chọn --cpu:
, nhưng tôi tìm thấy một danh sách (phần?) Trên bài What makes Nim practical blog. Tôi đã kết thúc cuộc gọi,
nim c --cpu:amd64 --os:linux -c hello.nim
Điều này đã ngăn lỗi tôi thấy khi biên dịch trên hộp Linux của mình. Nếu bạn đang sử dụng Linux hoặc OS X không chắc chắn những gì kiến trúc CPU của bạn là bạn có thể gọi điện thoại,
less /proc/cpuinfo
Các tài liệu nói rằng "mã C được tạo ra không phải là nền tảng độc lập C Ví dụ: mã được tạo cho Linux không biên dịch trên Windows. " và "di chuyển mã C và biên dịch compile_myproject.sh sang máy tính Linux i386 của bạn". Vì vậy, có lẽ bạn không thể hoàn thành điều này trên OS X. – Thilo
Ồ vâng, tôi nhớ đọc điều đó. Tôi scp'd 'nimcache' (với' nimbase.h') vào hộp linux của tôi và nhận lại lỗi cuối cùng. Tôi vẫn còn thiếu một cái gì đó? – cjohnson318