Tôi biết rằng trước đây có một tùy chọn -fprefix-function-name
sẽ thêm tiền tố vào tất cả các ký hiệu được tạo, nó dường như không phải là một phần của gcc nữa. Có cách nào khác để làm điều này?Làm thế nào tôi có thể nhận được gcc để thêm tiền tố vào tất cả các tên biểu tượng
Trả lời
Tôi tin rằng this answer sẽ cung cấp cho bạn giải pháp.
Nói tóm lại, bạn có thể 'prefix' biểu tượng trong một thư viện hiện có sử dụng objcopy
như thế này:
objcopy --prefix-ký tự = foo_ foo.o
* EDIT: George Skoptsov's solution ' s tốt hơn so với tôi :) Các thủ thuật nm
có thể có ích mặc dù.
Đây không phải là chính xác những gì bạn đang tìm kiếm, nhưng tôi đã phải làm một cái gì đó tương tự trong quá khứ (đổi tên những biểu tượng xuất bởi một thư viện)
Nếu bạn biết tên của các biểu tượng mà bạn muốn xác định lại bạn có thể thử sử dụng objcopy --redefine-syms old=new
. Xem các trang của người đàn ông của objcopy để biết thêm chi tiết về đầu vào (objcopy có thể ghi đè lên tập tin của bạn vì vậy hãy cẩn thận với điều đó)
Nếu bạn không biết tên của biểu tượng bạn có thể thử sử dụng nm
. Một lần nữa, vì tôi không chắc chắn bạn đang tìm kiếm loại biểu tượng nào, các trang của người đàn ông có lẽ sẽ là đặt cược tốt nhất của bạn.
- 1. Làm thế nào tôi có thể nhận được tất cả các ổ đĩa USB (cắm vào)
- 2. Làm thế nào tôi có thể thay đổi tiền tố trong tất cả các bảng trong MySQL DB của tôi?
- 3. Thêm biến làm tiền tố cho tất cả thư nLog
- 4. Làm cách nào để thêm tiền tố không gian tên vào đối tượng DOM XML?
- 5. Làm thế nào tôi có thể nhận được tất cả các tham chiếu với Reflection + C#
- 6. Làm thế nào để có được tất cả các yếu tố theo tên lớp?
- 7. Làm thế nào tôi có thể nhận được biểu tượng của ứng dụng từ tên gói?
- 8. Cách thêm tiền tố vào tất cả các hành động với Định tuyến URL ASP.Net MVC?
- 9. làm thế nào tôi có thể liệt kê ra tất cả các không gian tên trong XML?
- 10. Làm cách nào để cấu hình NHibernate (hoặc Fluent NHib) để thêm tiền tố tên bảng vào tất cả các tên bảng?
- 11. Làm thế nào tôi có thể nhận được tất cả các bộ trong redis?
- 12. Làm cách nào để tôi nhận được LinqToXSD để khai báo đúng các khai báo tiền tố không gian tên?
- 13. Làm thế nào tôi có thể nhận được tất cả các tên trường của Tài liệu Mongoid?
- 14. làm thế nào tôi có thể nhận được tất cả các yếu tố đầu vào không bao gồm các nút và các lĩnh vực ẩn với jquery?
- 15. Làm thế nào tôi có thể nhận được tất cả các lớp trong một không gian tên?
- 16. Tiền tố biến thành viên được thêm nhầm vào tên phương thức
- 17. Làm cách nào để thêm biểu tượng vào tệp thực thi được biên dịch mingw-gcc?
- 18. Thêm tiền tố vào trình trợ giúp tuyến đường được đặt tên theo không gian tên
- 19. Làm thế nào để thêm vào trước tất cả các yếu tố danh sách vào một danh sách khác
- 20. Làm thế nào để có được tất cả các yếu tố mà tên bắt đầu bằng một số chuỗi?
- 21. Nhận tất cả các yếu tố iframe
- 22. Cách thêm tiền tố của tất cả các bảng trong mysql
- 23. Làm thế nào để có được tất cả các tên bảng từ một cơ sở dữ liệu?
- 24. Làm thế nào tôi có thể nhận được tất cả các checkins của tôi trong Visual Studio 2010 TFS?
- 25. Làm thế nào tôi có thể nhận được giá trị của tất cả các ô được chọn trong một DataGridView?
- 26. Sử dụng RegEX để tiền tố và thêm vào Notepad ++
- 27. Làm thế nào để ràng buộc một sự kiện cho tất cả các yếu tố đầu vào của biểu mẫu?
- 28. bí danh tất cả các cột trong truy vấn có tiền tố
- 29. Tự động thêm tiền tố vào tên cột cho các lớp @Embeddable
- 30. Trong GCC, làm cách nào tôi có thể xuất tất cả các biểu tượng typeinfo cho một thư viện được chia sẻ mà không xuất tất cả các ký hiệu?
Tại sao bạn cần thực hiện việc này? Có lẽ bằng cách sử dụng một không gian tên sẽ giải quyết probem của bạn? –
Tôi đang biên dịch mã tôi nhận được từ người khác. Mã này là đa luồng và nó đang cố gắng sử dụng một thư viện cũ, không an toàn, C. Giải pháp được tìm thấy bởi người viết ứng dụng này là có nhiều bản sao của thư viện C, mỗi thư viện có một tiền tố khác nhau với tên biểu tượng của nó. Sau đó, mỗi chuỗi của ứng dụng gọi một phiên bản khác của hàm. Vì vậy, ví dụ, nếu thư viện cũ có một funcion oldlib_func, sẽ có các phiên bản v1_oldlib_func, v2_oldlib_func để thread số 1 sẽ gọi v1_oldlib_func và thread số 2 sẽ gọi v2_oldlib_func. – user1333800
Người viết ứng dụng phải tạo các phiên bản khác nhau của thư viện cũ với các tiền tố này, tôi không nhận được phần mã đó nên tôi phải lấy mã thư viện gốc và tìm cách thêm tiền tố cho tên biểu tượng. – user1333800