मेरे पास 3 हैडर फाइल ऑब्जेक्ट्स को परिभाषित करती है:
Point3d.h
< कोड> #ifndef POINT3D_H # परिभाषित POINT3D_H वर्ग Ray3d; वर्ग वेक्टर 3 डी; #include "Ray3d.h" #include "Vector3d.h" वर्ग Point3d {...}; #endif
Vector3d.h
#ifndef VECTOR3D_H # परिभाषित VECTOR3D_H वर्ग पॉइंट 3 डी; वर्ग रे 3 डी; #include "Ray3d.h" #include "Point3d.h" वर्ग Vector3d {...}; #endif
और Ray3d.h
#ifndef RAY3D_H # रेडेड 3 डी परिभाषित करें; वर्ग वेक्टर 3 डी; #include "point3d.h" #include "Vector3d.h" वर्ग Ray3d {...}; # सीडीएफ़
मैं। सीपीपी फाइलों को शामिल नहीं करूँगा, लेकिन सभी कार्यों को वहां परिभाषित किया गया है।
और फिर मेरे पास यह वर्ग है: Transform.h
<पूर्व> #ifndef TRANSFORM_H # परिभाषित TRANSFORM_H #include & lt; Eigen / Dense & gt; #include "../../geometry/Ray3d.cpp" #include "../../geometry/Point3d.cpp" #include "../../geometry/Vector3d.cpp" Eigen :: MatrixXd का उपयोग करना ; कक्षा परिवर्तन {...}; #endif
और अंत में मेरे पास यह उपवर्ग है: Translation.h
#ifndef TRANSLATION_H # परिभाषित TRANSLATION_H // # शामिल & lt; Eigen / Dense & gt; #include "Transform.h" // # शामिल करें "../../geometry/Point3d.cpp" // # शामिल करें "../../geometry/Vector3d.cpp" // # शामिल "../। ./geometry/Ray3d.cpp "Eigen :: MatrixXd का उपयोग कर; कक्षा अनुवाद: सार्वजनिक रूपांतरण {...}; #endif
समस्या तब होती है जब मैं संकलित करने की कोशिश करता हूँ Translation.cpp:
g ++ Transform.cpp Translation.cpp
मुझे Ray3d, Point3d, और Vector3d में प्रत्येक विधि के लिए फ़ंक्शन त्रुटि की एक बहुत अधिक परिभाषा मिलती है। इस से बचने के लिए मैं क्या कर सकता हूं? क्या मुझे कम शामिल होना चाहिए? क्या मेरी जी ++ कमान गलत है? धन्यवाद!
मुझे पता है कि मैं दोनों अग्रेषण घोषणा कर रहा हूं और पहले 3 शीर्षकों में शामिल हूं, लेकिन यही एकमात्र तरीका है कि मैं उन्हें संकलित करने के लिए मिल सकता था। समस्या का हिस्सा हो सकता है?
आपको सीपीपी फ़ाइलों को ट्रांसफार्म में शामिल नहीं करना चाहिए।
Stream class????
ReplyDeleteStream class???
ReplyDelete