Code trên Mac và chạy trên Linux?

Chào mn ạ… em là men mới nay có vấn đề cần thắc mắc.
chuyện là ông thầy của e dạy C trên linux(ubuntu) ổng giao bài tập
(gửi source code) và phải chạy trên linux. em đang dùng mac thì là unix.
nay ổng kêu là k làm trên linux thì bị 0 điểm… e có tra trên google mà k ra kết quả nên lên đây hỏi.
không rõ e code trên unix( xcode) thì có ổn chạy trên linux không nhỉ mn? em nghĩ là không sao. ai có kn rồi thì có thể dành chút tg giải đáp giúp e k ạ?

Không chạy được nha. Muốn chạy bạn phải cài cross-compiler. Tiện nhất thì cài máy ảo compile trên đó. Xài Docker chạy linux compile ra phân vùng volume cũng được.

6 Likes

Viết code ở đâu không quan trọng, ăn thua là code bạn định viết chạy trên môi trường nào, ngày xưa họ viết trên bìa đục lỗ vẫn được.
Cái ở đây là nếu bạn không dùng Ubuntu, bạn hãy trả lời xem là bạn muốn kiểm tra code có chạy trên Ubuntu hay không, bạn làm cách nào? Nghĩ nát nước đi, hỏi bạn bè cùng lớp thử. Còn không thì cứ nhận điểm zero trước, chạy chương trình trên Mac cho thầy xem sau.
Đùa tí chơi, bạn cài máy ảo vào máy bạn để viết code, nó không nặng đâu, chỉ cần 20GB ổ cứng là có thể cài Ubuntu và viết trên đó. Lười cài thì nói thằng bạn share máy cho bạn, remote vào máy nó để viết code và test trên đó. Thực sự, cứ viết và chạy được trên MAC OS X đi đã, nếu C được viết theo chuẩn hoặc cross-platform thì chạy đâu cũng được, mấy bài tập chủ yếu về giải thuật thì có lẽ là mang code đó compile ở máy khác chạy bình thường.

5 Likes

chưa hiểu “chạy” mà bạn (hay “ông thầy”) nói nghĩa là gì?
source code c thì phải biên dịch ra binary rồi chạy cái kết quả binary đó chứ có chạy code c đâu
còn biên dịch thì gcc có hỗ trợ cả mac lẫn linux còn gì?

4 Likes

Nếu là mấy source code không liên quan đến các hàm OS-specific (ví dụ printf scanf đơn giản, linked list hay quản lý sinh viên) thì code chạy hệ điều hành nào mà chả như nhau :neutral_face:

3 Likes

Vậy là chỉ cần gửi source code => Không cần gửi file đã biên dịch => Code ở đâu cũng được.
Mình nghĩ mục đích là để bạn phải đọc tài liệu hoặc xem lại bài giảng để code theo đúng C chuẩn chứ không thể copy code bừa trên mạng được. Ví dụ system("pause"); hay thấy trong tutorial là một code phụ thuộc vào OS, code bừa bãi không chạy được trên Linux là 0 điểm.

6 Likes

Bạn tham khảo trang này cho chuẩn :smiley: https://en.cppreference.com/w/c

Mấy cái windows.h, conio.h, _s là bỏ hết :slight_smile:

5 Likes

Rất cảm ơn mọi người đã đóng góp ý kiến ạ…
em đang học giáo trình cơ bản về C thôi nhưng ổng làm gắt quá. em thì chưa biết nhiều về vấn đề này.
còn bài tập thì chỉ có mấy cái thư viện cơ bản nhất thôi.

Vầng… em đang du học bên Hàn nên có thể không hiểu hết nghĩa của ông thầy lắm. giáo trình thì dạy trên ubuntu… hỏi bọn hàn thì nó k thèm rep… cũng khó bác ạ.!

em nghĩ là source code không khác mấy văn bản đuôi txt( chỉ khác là đuôi.c thôi chứ ạ).
nên gửi đi thì complie ở đâu cũng được chứ ạ. vì e từng gửi ở cả 2 hệ linux và unix thì file gửi cùng 1 dạng được nén trong zip… cho nên thắc mắc quá bác ạ…

Hi there,

Không cậu à. Trên Windows có 1 số thư viện chỉ cho riêng windows thôi.
Nếu cậu code trên windows, thì có khả năng code đó sẽ không compile được trên linux/mac Os.

Câu trả lời cho câu hỏi của cậu là “được”, cậu code trên mac OS, build với gcc, thì code đó sẽ chạy được trên linux mà không gặp vấn đề gì (Nhớ config XCode của cậu sử dụng gcc để biên dịch nhé :slight_smile: )
Tớ nghĩ thầy của cậu đưa ra yêu cầu hợp lý đó.

1 Like

Mình đang hiểu bạn muốn build ra file nhị phân rồi đưa cho thầy file đó. Thì việc build trên mac đưa file vậy là không được. Trừ khi bạn đưa source code và tất cả hàm đều xài từ bộ thư viện standard C, hoặc cross-compile.

5 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?