Giả sử tôi có hai file nguồn - UndefErr.cpp:Có cách nào bỏ qua các tham chiếu chưa được xác định không được sử dụng không?
#include <cstdio>
void UndefFunc();
void Func2(){UndefFunc();}
void Func1(){printf("Hi\n");}
Và main.cpp:
void Func1();
int main(){
Func1();
return 0;
}
Như bạn thấy trong UndefErr.cpp các Func2()
đi để kích hoạt lỗi, cho nó bằng cách sử dụng không xác định UndefFunc()
. Tuy nhiên, chức năng chính không quan tâm đến số Func2()
! Theo số a relevant question Tôi có thể chuyển một tùy chọn - biểu tượng không được giải quyết = bỏ qua-trong-đối tượng-tệp cho trình liên kết, nhưng tôi muốn có một điều khác biệt. Tôi cần một mối liên kết để biết nếu các chức năng không xác định được sử dụng ở đâu đó, và chỉ sau đó thất bại.
Lý do đặt câu hỏi lạ như vậy là tôi đang cố gắng sử dụng lwIP và khó hiểu tất cả các phụ thuộc của nó (Tôi chỉ cần TCP/IP) và tôi không thể tìm thấy hướng dẫn trên internet. Vì vậy, tôi nghĩ rằng tôi có thể biên dịch hầu hết các tệp (hoặc tất cả) .c và viết một số thử nghiệm đơn giản để xem nó hoạt động như thế nào. Nhưng cách tiếp cận này tình cờ gặp "các tham chiếu không xác định", hầu hết trong số chúng có thể không liên quan đến hệ thống usecase.
có vẻ như liên kết có thể chỉ "tìm ra" nếu tham chiếu thậm chí cần được giải quyết ... một giải pháp mặc dù là nếu không có nhiều chức năng để làm cho nó cồng kềnh bạn chỉ có thể khai thác chúng trong chính. cpp ... ví dụ 'void UndefFunc() {}' – mark
@mark không, trong dự án có rất nhiều chức năng. Và vấn đề chính mà tôi không biết, mà các chức năng không được sử dụng, đó là lý do tại sao tôi muốn bằng cách nào đó để tự động hóa nó .. –
Tôi không hiểu câu hỏi. Trình liên kết sẽ khiếu nại nếu nó gặp một hàm không xác định. –