Tôi từng làm việc với toán.h mà không có bất kỳ vấn đề gì. Bây giờ, tôi sử dụng một thư viện bên ngoài mà chính nó có một tập tin gọi là math.h
, nhưng bao gồm < cmath>
.cmath.h và biên dịch lỗi
Thêm thư viện này để dự án của tôi (hoặc thậm chí chỉ cần thêm bao gồm thư mục, mà không cần chạm vào code) bây giờ tạo ra tấn lỗi từ < cmath>
:
C: \ Program Files \ Microsoft Visual Studio 8 \ VC \ include \ cmath (18): lỗi C2039: 'acosf': không phải là thành viên của '' không gian tên chung ''
C: \ Program Files \ Microsoft Visual Studio 8 \ VC \ include \ cmath (18): lỗi C2873: 'acosf': không thể sử dụng ký hiệu trong khai báo sử dụng
C: \ Program Files \ Micr osoft Visual Studio 8 \ VC \ include \ cmath (18): lỗi C2039: 'asinf': không phải là thành viên của '`namespace toàn cầu' '
C: \ Program Files \ Microsoft Visual Studio 8 \ VC \ include \ cmath (18): lỗi C2873: 'asinf': biểu tượng không thể được sử dụng trong một sử dụng-khai
[vv, vv ...]
tôi không hiểu tại sao điều này xảy ra. Tôi đang sử dụng Visual Studio 2005 và tìm kiếm trên internet, có vẻ như vấn đề này được giải quyết theo VS 2008. Tuy nhiên, tôi muốn ở lại trên VS 2005 ...
Bao gồm using namespace std;
ở khắp mọi nơi, hoặc thay đổi thứ tự của bao gồm của tôi dường như không thay đổi bất cứ điều gì. Xác định _STD_BEGIN
giải quyết lỗi, nhưng tạo ra nhiều lỗi trong < xlocinfo>
.
Cách này có thể được giải quyết?
cmath là nghĩa vụ phải được sử dụng từ C++. Bạn có bao gồm tiêu đề này từ một tệp C? –
thực sự một trong các tệp của tôi trong dự án của tôi là trong C và được bao gồm với "C" bên ngoài. Nó bao gồm "math.h" mà sau đó được tìm thấy trong thư mục bao gồm thư viện bên ngoài của tôi, và ngầm bao gồm cmath - do đó tôi không biết cách sửa lỗi đó. Tuy nhiên, các lỗi biên dịch này dường như xảy ra thậm chí sớm hơn trong mã của tôi, trước khi biên dịch mã C này. – WhitAngl
thay đổi đoạn mã C cụ thể này thành C++ dường như không thay đổi tất cả các lỗi biên dịch từ cmath mặc dù ... – WhitAngl