2010-12-30 35 views
22

Tôi cần cài đặt trình mô phỏng trong ubuntu của mình. Nó được viết bằng C++ và khi tôi cố gắng thực hiện, tôi nhận được lỗi này strlen was not declared in this scope. Bất kỳ giải pháp nào để khắc phục lỗi này?strlen không được khai báo trong phạm vi này - C++

+0

Đăng đầu ra lỗi đầy đủ. – Electro

+0

Bất kỳ ai biết tại sao lỗi này sẽ * không * xảy ra trên các hệ thống nhất định, ví dụ: gcc 4.5.3 Linux 32 bit? – gcbenison

+0

@gcbenison: 'gcc' là trình biên dịch C không cần thư viện" c "(ví dụ:' cstring', 'cstdlib', bất kỳ thứ gì). Tuy nhiên, 'g ++' là trình biên dịch C++ cần chúng bao gồm. – Wolfer

Trả lời

42

này nên làm điều đó:

#include <cstring> 
+0

Tôi cũng nhận được lrand48 không được khai báo trong lỗi phạm vi này. Bạn có thể giúp tôi được không? – Vivek

+1

@Vivek: theo [google] (http://www.google.com/#&q=lrand48+include), '#include ' có thể giúp – icecrime

1

bạn đã cài đặt tất cả các gói bạn cần thiết?

  1. thử g ++ --version và xem có cung cấp gì không.
  2. kiểm tra/usr/lib/include/for string.h.

Nếu những thứ đó không có ở đó, bạn cần phải kiểm tra xem có cài đặt đúng gói hay không.

+2

Thực sự, những gì sẽ khiếu nại về 'strlen()' không thể truy cập được mà không có trình biên dịch? – AttishOculus

+2

Các yêu tinh huyền diệu sống bên trong máy tính. Họ cũng chịu trách nhiệm cho hầu hết các lỗi dường như xuất hiện và sau đó biến mất mà không cần can thiệp. –

6
#include <cstring> 

chương trình của bạn cũng có thể tìm kiếm ::strlen thay vì std::strlen. Nếu trường hợp này xảy ra, hãy thử

using std::strlen; 
Các vấn đề liên quan