em đang học C++ thì gặp lỗi sau, mong admin giúp gỡ lỗi
Error 1 error C2864: ‘cv::sfinae::has_parenthesis_operator<C,Ret,Args…>::value’ : a static data member with an in-class initializer must have non-volatile const integral type d:\work\opencv\opencv 3.4\opencv\build\include\opencv2\core\cvstd_wrapper.hpp 52 1 ConsoleApplication3
Lỗi C2864: "a static value data member with…integral type" khi code opencv2
Mình góp ý là bạn phải đưa code lên đây nữa thì may ra mới biết được lỗi ở đâu với cả khi hỏi lỗi thì chỉ cần ghi cái đoạn ở giữa thôi “a static value data member with…intergal type”.
Còn đây là tài liệu liên quan đến lỗi này : https://docs.microsoft.com/en-us/cpp/error-messages/compiler-errors-2/compiler-error-c2864?view=vs-2019
cám ơn bạn đã trả lời. code đây bạn nhá
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
Mat image;
image = imread("D:\\img1.jpg", IMREAD_COLOR); // doc file
if (!image.data) //kiem tra doc thanh cong hay khong
{
//cout << "Could not open or find the image" << std::endl; return -1;
}
imshow("Display window", image); // hien thi anh
waitKey(0); // Wait for a keystroke in the window return 0;
}
Khi mình dùng make file thì xuất hiện lỗi này:
error in configuration process, project file may be invalid.
có lẽ lỗi này đã gây ra lỗi 2864 ở trên. mong mọi người giúp đỡ
Theo như thông báo lỗi thì lỗi này do opencv
gây ra.
Dòng 52 của tập tin:
d:\work\opencv\opencv 3.4\opencv\build\include\opencv2\core\cvstd_wrapper.hpp
Có 2 kết quả về lỗi giống bạn, thời gian hỏi cũng đều thời gian gần đây:
https://quick-geek.github.io/answers/968034/index.html
https://ru.stackoverflow.com/questions/968034/Ошибка-c2864-при-работе-с-opencv
Đã khai báo các lib hoặc dll chưa ?
Hơn nữa code kia mà read fail là cũng ăn hành.
đã khai báo lib, còn DLL không biết khai báo thế nào bạn ạ. vì trên mạng không thấy đề cập DLL
không đọc nổi tiếng nga bạn ạ. trình kém
Cả 2 đều có nội dung hỏi và trả lời giống nhau thôi. Nhưng đều chưa có cách giải quyết.
Theo như câu trả lời:
Dòng 52 của tập tin cvstd_wrapper.hpp
là:
static CV_CONSTEXPR bool value = type::value;
Khi đó, trong tập tin cvdef.h
có định nghĩa cho CV_CONSTEXPR
là constexpr
:
#ifndef CV_CONSTEXPR
# if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1900/*MSVS 2015*/)
# define CV_CONSTEXPR constexpr
# endif
#endif
#ifndef CV_CONSTEXPR
# define CV_CONSTEXPR
#endif
Nhưng 22 ngày trước đó, CV_CONSTEXPR
là const
.
#ifndef CV_CONSTEXPR
- # define CV_CONSTEXPR const
+ # define CV_CONSTEXPR
#endif
Do ai đó trong dự án OpenCV đã chỉnh sửa nội dung của cvdef.h
. Điều này đã gây ra lỗi trên.
Có 2 loại lib là static lib và dynamic(shared) lib.
Loại đầu không cần dll nhưng loại sau thì phải có dll.
Dll thường sẽ được copy vào cùng nơi với exe hoặc đường dẫn mà exe khởi động. Thông thường sẽ rơi vào cái thứ 2.
Một chú ý nữa là dll build bằng MinGW có thể không chạy với dự án build bằng MSVC và ngược lại. Và cũng cần phải đúng x86 hoặc x64. Nếu gặp phải trường hợp này thì phải build lại opencv từ mã nguồn.
câu trả lời của bạn rất giá trị. chắc mình phải dùng bản opencv cũ hơn thôi
chào mọi người. sau khi xem lại các thiết lập thì mình đã biên dịch thành công, nhưng khi debug thì máy báo thiếu file .dll, cụ thể thiếu các file sau MSVCP140D.dll , VCRUNTIME140D.dll , CONCRT140D.dll và không chạy. mong mọi người cho lời khuyên?
Thế phải khai báo thêm các lib hoặc chuyển thử qua chế độ release.
không được bạn ạ, chế độ nào cũng lỗi
Cụ thể là bạn nên đưa thêm các thông tin:
Đang dùng OpenCV version bao nhiêu ?
Có build lại từ mã nguồn hay dùng cái build sẵn ? x86 hay x64
Compiler để build OpenCV là gì ?
Dùng IDE hoặc editor nào ?
Compiler sử dụng là gì ? x86 hay x64 ?
….
chào bạn.
mình dùng visual studio 2013, cho win 10 64 bít. opencv 3.4.1, không build lại mã nguồn mà dùng cái có sẵn. x64 ( từ bản 3. trở đi chỉ có x64)
Compiler để build OpenCV là gì ? cái này chính là visual studio mà bạn
Dùng IDE hoặc editor nào ? cũng là visual studio
có thể sửa trên PC của mình ko?
Bạn dùng VS thì trình biên dịch mặc định của nó là MSVC. OpenCV bạn không build lại thì cần kiểm tra xem nó có phải bản build bằng MSVC hay không và 32 hay 64 bit. Nếu nó được build bằng MinGW và số bit khác cấu hình dự án thì nó rất dễ lỗi hoặc không build hay chạy được.