2008-11-21 26 views
7

Có ai có kinh nghiệm với việc chạy các ứng dụng C++ sử dụng các thư viện tăng trên các hệ thống dựa trên uclibc không? Thậm chí có thể không? Bạn sẽ sử dụng thư viện chuẩn C++ nào? Là uclibC++ có thể sử dụng với tăng?Tôi có thể sử dụng tăng cường trên uclibc linux không?

+0

Có hướng dẫn sử dụng thân thiện còn tồn tại. Chỉ cần, bạn biết, nói. Tôi cũng sẽ đặt câu hỏi bằng cách sử dụng tăng trên một hệ thống nhúng anyway ... có vẻ rất nhiều chi phí cho công việc nhúng. –

+0

Tôi đang đánh giá tăng cường cho một ứng dụng enterprisey cho hệ thống máy chủ cấp, nhưng có một số lợi ích để mở rộng quy mô xuống các hệ thống nhúng. Đây không phải là hoàn toàn nhúng hoặc tôi muốn sử dụng cái gì khác, nhưng thúc đẩy mang lại rất nhiều để bàn nếu bạn có thể xoay nó. – bmdhacks

+0

Boost có nhiều thư viện, tôi chắc chắn một số thư viện sẽ hoạt động và tỷ lệ cược là một số sẽ không hoạt động. Chúng ta đang nói về những phần nào? –

Trả lời

2

Chúng tôi sử dụng Boost cùng với GCC 2.95.3, libstdC++ và STLport trên một nền tảng ARMv4 chạy uClinux. Một số bộ phận của Boost không tương thích với GCC 2.x nhưng các bộ phận hoạt động tốt trong trường hợp cụ thể của chúng tôi. Các thư viện mà chúng ta sử dụng nhiều nhất là DATE_TIME, bind, chức năng, tuplechủ đề.

Một số thư viện chúng tôi đã có vấn đề với những lambda, shared_pointerđịnh dạng. Những vấn đề này rất có thể do phiên bản GCC của chúng tôi gây ra vì nó có vấn đề khi bạn có quá nhiều hoặc bao gồm các cấu trúc mẫu sâu.

Nếu có thể, tôi khuyên bạn nên chạy bộ kiểm tra tăng cường với chuỗi công cụ cụ thể của bạn để đảm bảo khả năng tương thích. Ít nhất bạn có thể biên dịch một chuỗi công cụ gốc để đảm bảo rằng các phiên bản thư viện của bạn tương thích.

Chúng tôi đã không sử dụng uClibC++ vì đó không phải là những gì nhà cung cấp công cụ đề xuất của chúng tôi vì vậy tôi không thể nhận xét về kết hợp cụ thể đó.

+0

Bạn có thể làm rõ bằng cách sử dụng cả STLport và libstdC++ cùng nhau? Cái nào làm tăng liên kết đến? – bmdhacks

+0

Xin lỗi, nó liên kết với STLport. –

0

Tôi chưa thử nhưng tôi không biết gì về uclibc có thể ngăn Boost hoạt động.

Hãy thử và xem điều gì xảy ra, tôi sẽ nói.

+0

Boost yêu cầu thư viện C++ chuẩn, nếu tôi thử nó, thư viện C++ nào tôi sẽ sử dụng? – bmdhacks

+0

Hơn nữa, "thử nó" là một chút đau cho các hệ thống nhúng. Bạn có nói rằng tôi nên cháy lên trình biên dịch chéo của tôi và chi tiêu giờ và giờ cố gắng để có được tăng và một thư viện c + + làm việc? Nếu tôi gặp phải bất kỳ rào chắn nào, tôi có dành nhiều thời gian hơn cho nó hay tôi có kết luận rằng nó có thể thực hiện được không? – bmdhacks

+0

Dựa trên số lượng thông tin trong câu hỏi ban đầu, "hãy thử nó" là câu trả lời duy nhất bạn nên mong đợi để có được. "Có thể chạy KDE 4 trên máy tính của tôi không, hãy trả lời mà không cần tôi cung cấp bất kỳ thông số kỹ thuật nào về máy tính của tôi". –

2

Chúng tôi đang sử dụng nhiều thư viện Boost (thread, filesystem, signal, function, bind, any, asio, smart_ptr, tuple) trên Arcom Vulcan, được thừa nhận là khá mạnh mẽ cho thiết bị nhúng (64M RAM, 533MHz XScale) . Mọi thứ đều hoạt động đẹp mắt.

GCC 3.4 nhưng chúng tôi không sử dụng uclib ++ (Arcom cung cấp một chuỗi công cụ bao gồm libstd ++).

Nhiều thiết bị nhúng sẽ vui vẻ chạy nhiều thư viện Boost, giả sử hỗ trợ trình biên dịch tốt. Chỉ cần chăm sóc với cách sử dụng. Các thư viện Boost nâng cao mức trừu tượng và có thể dễ dàng sử dụng nhiều tài nguyên hơn bạn nghĩ.

+0

Cảm ơn thông tin. Bạn có nghi ngờ rằng libstdC++ của Arcom là thư viện GNU không? Hệ thống của bạn có bao gồm glibc cho libc không? – bmdhacks

+0

Vâng, libstdC++ của Arcom là phiên bản GNU. Và vâng, chúng tôi sử dụng glibc. uclib cũng phải hoạt động nhưng chúng tôi vẫn chưa đi xuống con đường đó. – MattyT

+0

Cảm ơn thông tin, nhưng tôi quan tâm nhiều hơn đến các hệ thống dựa trên uclibc. Một khi bạn bắt đầu sử dụng glibc và GNU libstdC++, bạn khá giống với RedHat tốt trên x86. Có thể là glibc và GNU libstdC++ là những cách duy nhất để sử dụng boost, nhưng tôi hy vọng ai đó biết nếu đó là trường hợp. – bmdhacks

1

Tôi googled "uclibc stlport". Dường như có ít nhất một vài phiên bản của uclibc mà stlport có thể được biên dịch (xem this). Cho rằng, tôi muốn nói Boost chỉ là một vài bước biên dịch. Tôi đã đọc một thông điệp của David Abrahams (một thành viên tích cực của cộng đồng tăng cường) nói rằng Boost không phụ thuộc trực tiếp vào libc đã sử dụng. Nhưng một số thư viện vẫn có thể gây ra vấn đề, ví dụ như Boost.Python, vì nó phụ thuộc vào cái gì khác (Python trong ví dụ của tôi) có thể khó biên dịch với uclibc.

Hope this helps

+0

Cảm ơn câu trả lời hợp lý đầu tiên. Bạn đã cho tôi nửa đường ở đó, rất hữu ích. Tôi vẫn giữ cho ai đó với kinh nghiệm thực tế hoặc bằng chứng về điều này thực sự đang được triển khai, xem xét các tiền thưởng lớn tôi đã cung cấp. – bmdhacks

0

Có, bạn có thể sử dụng tăng cường với uclibc.
Tôi đã thử điều này với tăng 1.45 & uclibc trên ARM9260

  1. Dùng tươi OpenEmbedded
  2. Cấu hình nó để sử dụng Angstrom
  3. Configure Angstrom sử dụng uclibc
  4. làm tăng - bitbake tăng
Các vấn đề liên quan