Dự án tôi đang biên dịch sử dụng CMake, trong đó loves absolute pathnames.Đặt gcc đặt tên tệp tương đối trong thông tin gỡ lỗi
Khi tôi biên dịch với thông tin gỡ lỗi được bật, gcc đặt những tên dài đó vào các phần .debug_str
, điều này không tốt để gỡ lỗi. Thay vào đó, tôi muốn có các tên đường dẫn tương đối ngắn so với dự án gốc.
Có một số tùy chọn để yêu cầu gcc tách một số phần của tên đường dẫn trước khi phát ra dữ liệu gỡ lỗi không? Hoặc, có lẽ, có một số công cụ có thể làm điều đó trên các tệp nhị phân đã biên dịch?
Tôi đã thử sử dụng SET(CMAKE_USE_RELATIVE_PATHS ON)
(có vẻ là frowned upon bởi devs), nhưng khi tôi đang sử dụng các bản dựng nguồn ngoài, tên đường dẫn vẫn không ở dạng tôi muốn. I E. chúng là ./../src/mod_foo/foo.c
thay vì mod_foo/foo.c
.
'./../ src/mod_foo/foo.c' là đường dẫn ** tương đối ** ... –
Có, nhưng không liên quan * đến gốc của dự án *, mặc dù (có tại' ./ ../ src') – drdaeman
Bạn gặp sự cố với CMake, chứ không phải với gcc. GCC đặt vào '.debug_str' chính xác là nó nhận được như một đối số dòng lệnh. – sirgeorge