Câu trả lời chung là bạn không thể, nhưng có một vài thủ thuật bạn có thể làm.
Ví dụ, objcopy từ binutils có khả năng sao chép một đối tượng, nhưng đặt một tiền tố trên tất cả các biểu tượng bằng cách sử dụng các --prefix-ký cờ. tiền tố thứ thường là không gian tên của người nghèo và là một cách "ok" để tránh xung đột.
Cách sử dụng khá đơn giản, một cái gì đó như thế này:
objcopy --prefix-symbols "__mylib_" object.o new_object.o
LƯU Ý: có, nó không làm việc với .so tập tin quá.
CHÚ Ý 2: điều này sẽ hoàn toàn phá vỡ tên xén mang tên C++, vì vậy, chỉ thử trên thư viện có API kiểu C. Vì bạn đang nói về việc thêm một không gian tên nơi không có, tôi cho rằng đây là trường hợp.
Nguồn
2009-07-13 19:53:26
Tôi vừa xem trang web OpenCV. Có vẻ như tất cả các chức năng đều có tiền tố là "cv". Trong khi các không gian tên là một giải pháp tốt hơn, tôi tự hỏi, bạn đang có những va chạm biểu tượng thực sự? –
Tôi không có xung đột thực sự, nó chỉ là để giữ cho mọi thứ được tổ chức như tôi đang làm wrapper của một số cấu trúc dữ liệu openCV và muốn đặt chúng trong cùng một không gian tên. –