Môi trường phát triển cho C


10

Tìm kiếm ý tưởng về việc thiết lập một môi trường phát triển thuận tiện và hiệu quả để phát triển C. Tôi thấy chỉnh sửa C với Vim rất hữu ích nhưng tôi muốn lấy mẫu đề xuất rộng hơn.


@txwikinger Đồng ý, tôi chỉ không muốn là người đầu tiên của cảnh sát CW ở đây :). Hoặc là người tạo ra thẻ [chủ quan], cần phải chết một cái chết đau đớn
Michael Mrozek

Đã có wiki cộng đồng ở đó. Vì vậy, không có lý do :) Và tôi đã tạo ra thẻ chủ quan, vì vậy tất cả những lo lắng của bạn đã biến mất. Vui lòng kiểm tra wiki cộng đồng ngay bây giờ :)
txwikinger

@txwikinger Bây giờ thực sự không khuyến khích , vì vậy tôi đã xóa nó khỏi tất cả các bài đăng có nó
Michael Mrozek

Câu trả lời:


12
  • Emacs / Vim / Eclipse / ... - Cá nhân tôi là người dùng Emacs. Nếu bạn tìm thấy các chuỗi điều khiển làm mệt mỏi hồng hào của bạn, chỉ cần Viper-Mode cho nó lên. Emacs được tích hợp rất tốt vào unix, giúp dễ dàng kiểm soát mọi thứ từ một nơi. Vim cũng làm rất tốt ở đây, nhưng tôi thấy Elisp là ngôn ngữ mở rộng mạnh mẽ hơn nhiều so với Vim Script. Người ta có thể nói hàng giờ về tất cả các cách để thiết lập Emacs để phát triển C. Chế độ Flymake đã được đề cập, và là một siêu khởi đầu cho mọi thứ. Tôi không quen thuộc với Eclipse, tôi không thấy nó để lại đủ chỗ trên màn hình cho mã của mình, tôi cũng không thích nó bị phồng lên như thế nào (người dùng Vim sẽ nói điều tương tự về Emacs). Tôi cũng không thiên vị đối với bất cứ điều gì được viết bằng Java, vì lý do thẩm mỹ hoàn toàn.

  • Ctags - Gắn thẻ chức năng C (hoặc nhiều ngôn ngữ khác) của bạn để Vim hoặc Emacs hoặc bất cứ điều gì có thể thực hiện một chút liên kết siêu văn bản trong tệp của bạn. Giả sử bạn đang đi lang thang và bạn thấy một chức năng và bạn đang gãi đầu nói "Cái đó làm gì nữa? Việc đặt tên hơi mơ hồ." Plink-plank-plunk, bạn có thể hạ gục thẳng theo định nghĩa của nó.

  • Cmake / Gnu-Autotools - Make rất tuyệt, nhưng đến một lúc nào đó bạn cần trừu tượng hóa mọi thứ một chút để dự án của bạn có thể tự xây dựng trên tất cả các loại hệ thống mà bạn không có cách nào thử nghiệm. Nếu bạn chỉ cần mọi người xây dựng mã của mình trên * nix, Autotools là tuyệt vời, nhưng, thực sự, bạn vẫn nên làm quen với Cmake. Nhóm xây dựng mã Cmake trong mọi cấu hình có thể hiểu được có thể và đảm bảo rằng bạn không phải trải qua cơn đau đầu. Nếu bạn muốn dự án của bạn dễ dàng được chọn mua người khác, một trong những công cụ này là rất quan trọng.

  • Git / Mercurial / Subversion / ... - Bạn có thể dành hàng tháng để nghiên cứu phần mềm kiểm soát phiên bản, nhưng có lẽ bạn chỉ nên đi với Git. Thật vững chắc, nó được phân phối, Hạt nhân @ $! #% & Linux được theo dõi cùng với nó. Nếu nó đủ tốt cho Linus, thì nó phải đủ tốt cho bạn. Tôi cũng nghe thấy những điều hay về Mercurial, rõ ràng G ** gle sử dụng chúng, nên có lẽ nó không tệ. Một số người có vẻ thích Subversion và CVS và không có gì. Tôi không thích chúng vì chúng nguyên khối, điều này với tôi rất bất tiện và hạn chế.

  • Stumpwm / wmii / XMonad / ... - Tại một số điểm bạn sẽ nhận ra rằng bất cứ điều gì bạn có thể làm để duy trì công việc của bạn sẽ giúp cải thiện đáng kể sản lượng của bạn. Một trong những cách tốt nhất để giữ cho bộ não của bạn không phá vỡ bối cảnh của nó là chuyển sang ốp lát, các trình quản lý cửa sổ KEYBOARD DRIVEN. Tôi là một fan hâm mộ cá nhân của StumpWM , Emacs của các nhà quản lý cửa sổ. Được thực hiện đầy đủ trong một quy trình Common Lisp có thể tùy chỉnh nhanh chóng, bất cứ điều gì bạn thấy mình làm lặp đi lặp lại đều có thể bị trục xuất vào các chức năng và bị ràng buộc với các lệnh. Công cụ tuyệt vời. Tôi không biết nhiều về bất kỳ ai trong số những người khác, nhưng có lẽ chi tiết hơn nữa là tốt hơn để lại cho một chủ đề khác. SỬ DỤNG KEYBOARD NHƯ VẬY.

  • GDB - Tôi không quen thuộc với các trình sửa lỗi khác, nhưng điều này dường như là tiêu chuẩn thực tế.

  • Valgrind - Tôi không biết bất cứ điều gì khác làm điều này rất tốt. Valgrind là rất quan trọng cho tất cả những cuộc săn lùng hồ sơ / rò rỉ bộ nhớ phiền phức mà bạn muốn tiếp tục. Bạn không thể viết mã với malloc / calloc mà không có Valgrind.


Tôi sẽ thêm Bộ đếm hiệu suất Linux ( perf.wiki.kernel.org/index.php/Main_Page ) và / hoặc Oprofile ( oprofile.sourceforge.net/news ) vào danh sách đó.
Đánh dấu vào

Tôi chỉ làm cho nó trở thành một wiki cộng đồng, vì vậy bạn có thể thêm những người trong đó tuy nhiên bạn cảm thấy phù hợp. Performance Counter có vẻ chỉ là Linux? Tôi sẽ xem xét để xác nhận / từ chối điều này, nhưng nếu vậy thì điều này ít nhất nên được ghi chú trong đề xuất của nó.
Eli Frey

2

Tôi đã kiên trì với Vim một thời gian, thật đáng để biết những điều cơ bản về VIM vì bạn sẽ luôn tìm thấy một hộp UNIX ở đâu đó chỉ có điều đó, nhưng tôi đã thử Emacs và không nhìn lại. Nhật thực là một sự thay thế 'hiện đại', tôi có cả ba trong hệ thống của mình!


2

Đó là rất nhiều sở thích cá nhân, vì vậy tôi không nghĩ rằng tôi có thể làm nhiều hơn là nói với bạn những gì tôi sử dụng. Tôi có Emacs được thiết lập với chế độ Flymake , định kỳ biên dịch tệp bạn đang làm việc và phân tích cú pháp đầu ra của trình biên dịch để tìm ra lỗi nào bạn đã mắc phải. Nó khắc phục các lỗi / cảnh báo trong bộ đệm và hiển thị thông báo lỗi trình biên dịch liên quan


2

Tôi sử dụng Kate (văn bản) gcc / avr-gcc và thực hiện, với Git là VC. Tôi chủ yếu làm công cụ nhúng trong c và phía máy tính trong python.


2

Nếu bạn đang thực hiện phát triển C trong Unix / Linux, bạn hoàn toàn phải sử dụng Cscope nếu dự án có kích thước đáng kể.

Cscope là một công cụ của nhà phát triển mã nguồn trình duyệt - nhảy đến chức năng foobarcủa định nghĩa, tất cả những nơi mà biến foođược tham chiếu, tìm tất cả các file trong đó bar.h, thay đổi tất cả các lần xuất hiện của barthành bazvv

Ngoài ra, bạn đã đề cập đến Vim trong bài đăng của mình ... đây là hướng dẫn sử dụng Vim & Cscope cùng nhau.



1

yêu thích cá nhân của tôi là exVim . Nó có rất nhiều plugin vim giúp sử dụng rất dễ dàng với cơ sở mã lớn. Tôi mất khoảng 1 ngày để tìm hiểu các tính năng của nó nhưng nó sẽ có giá trị.


1

Tôi chỉnh sửa C với Vim trong bảng điều khiển. Tôi sử dụng tệp tạo tệp và có một số trình biên dịch để kiểm tra mã của tôi, bao gồm gcc, clang (LLVM) và icc. Những thứ khác tôi coi là một phần của môi trường phát triển của mình: việc sử dụng grep, trình gỡ lỗi và valgrind. Một ngôn ngữ kịch bản cho các bản dựng phức tạp hơn. Git để kiểm soát phiên bản.

Quan trọng hơn trong suy nghĩ của tôi so với những gì bạn sử dụng để chỉnh sửa mã là cách bạn cấu trúc mã của mình. Làm thế nào để đặt nó ra có lẽ là một câu hỏi cho Stack Overflow, nhưng, như bạn đã hỏi, tôi thường có một thư mục riêng cho mã đối tượng không để phân phối và một thư mục khác cho binar kết quả (y | ies). Tôi có một thư mục thử nghiệm chứa nhiều tệp C sử dụng tất cả các mã chung tôi đang viết và các tệp này tôi valgrind, cùng với tệp dự án cuối cùng.


1

Bạn có thể thử Motor IDE . Nó nguyền rủa dựa trên nên bạn sẽ cảm thấy như ở nhà (tm).) Điều đó cũng hơi buồn vì nó không được duy trì trong 5 năm nay nên đôi khi có thể bị phá vỡ. Mặc dù vậy - tôi tin rằng nó đáng để thử.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.