Tôi gặp sự cố tương tự khi sử dụng Intel RealSense 3D SDK
trong C++
. Tôi có một số hand.cpp
và hand.h
trong mã của riêng tôi và khi tôi có using namespace Intel::RealSense;
nó xảy ra xung đột. Để sửa lỗi, tôi đã xóa using namespace Intel::RealSense;
và thêm PXC vào từng tên lớp liên quan đến SDK RealSense. Dưới đây là một số ví dụ về những thay đổi mới: #
include "RealSense/SenseManager.h"
#include "RealSense/SampleReader.h"
#include "util_render.h"
#include "Visualizer.h"
#include <iostream>
using namespace std;
//using namespace Intel::RealSense;
PXCSenseManager *pp = PXCSenseManager::CreateInstance();
PXCCapture::Device *device;
PXCCaptureManager *cm;
và đây là những gì các mã cũ trông giống như:
#include "RealSense/SenseManager.h"
#include "RealSense/SampleReader.h"
#include "util_render.h"
#include "Visualizer.h"
#include <iostream>
using namespace std;
using namespace Intel::RealSense;
SenseManager *pp = SenseManager::CreateInstance();
Capture::Device *device;
CaptureManager *cm;
Sau khi thay đổi, tôi không nhận được lỗi sau nữa.
Severity Code Description Project File Line Suppression State
Error C2872 'Hand': ambiguous symbol OpenARK-SDK c:\openark\Object3D.h
Nguồn
2017-05-23 18:54:22
Đó là lý do khiến điều này khiến 'sử dụng không gian tên std; 'như một cơn ác mộng. –
Cảm ơn bạn đã làm việc! – Haxify
Thay vì đổi tên 'max', tôi khuyên bạn không nên sử dụng chỉ thị sử dụng' using namespace std; 'cho chính xác lý do này. –