Trước ngày hôm nay, tôi luôn tin rằng thứ tự các đối tượng và thư viện được chuyển tới g ++ trong giai đoạn liên kết không quan trọng. Sau đó, hôm nay, tôi đã thử liên kết từ mã C++ đến mã c. Tôi bọc tất cả các tiêu đề C trong một khối "C" bên ngoài nhưng mối liên kết vẫn gặp khó khăn khi tìm các biểu tượng mà tôi biết là trong kho lưu trữ đối tượng C.g ++ liên kết phụ thuộc thứ tự khi liên kết mã c tới mã C++
Khó hiểu, tôi đã tạo một ví dụ tương đối đơn giản để tách biệt lỗi liên kết nhưng tôi ngạc nhiên, ví dụ đơn giản được liên kết mà không gặp bất kỳ sự cố nào.
Sau một chút thử và lỗi, tôi thấy rằng bằng cách mô phỏng mẫu liên kết được sử dụng trong ví dụ đơn giản, tôi có thể lấy mã chính để liên kết OK. Các mô hình đã được mã đối tượng đầu tiên, đối tượng tài liệu lưu trữ thứ hai ví dụ:
g++ -o serverCpp serverCpp.o algoC.o libcrypto.a
bất cứ ai có thể làm sáng tỏ về lý do tại sao có thể như vậy ?. Tôi chưa bao giờ thấy vấn đề này khi liên kết mã C++ bình thường.
Để biết chi tiết, hãy xem: http://stackoverflow.com/questions/1095298/gcc-c-linker-errors-undefined-reference -to-vtable-cho-xxx-undefined-referen/1095321 # 1095321 –