2010-11-19 46 views

Trả lời

2

Bạn cần phải tìm ra tệp hoặc thư viện đối tượng nào terminate sống và bao gồm nó trong lệnh biên dịch/liên kết của bạn.

Nếu đó là trong một đối tượng hoặc nguồn tập tin, chỉ cần cung cấp cho nó để gcc bạn (giả sử bạn đang thực sự sử dụnggcc, nếu không muốn nói, phương pháp này có lẽ sẽ tương tự) lệnh như bình thường. Nếu thư viện nằm trong thư viện, bạn nên xem các tùy chọn -L (đường dẫn thư viện) và -l (tên thư viện).

-2

void terminate(void) { raise(9); }

8

terminate được định nghĩa trong thư viện chuẩn C++, do đó hãy chắc chắn rằng bạn đang liên kết mà trong. Giả sử bạn đang sử dụng gcc để biên dịch, bạn nên sử dụng g++ thực thi để biên dịch mã nguồn của bạn, không các gcc thực thi:

g++ source.cc -o output 

Khi thực hiện như g++, mối liên kết tự động liên kết trong ++ thư viện chuẩn C (libstdC++) cho bạn. Nếu bạn thay vì thực hiện gcc như đồng bằng gcc, hoặc bạn trực tiếp gọi mối liên kết ld, sau đó bạn cần phải thêm -lstdc++ mình để liên kết trong thư viện, ví dụ .:

gcc source.cc -o output -lstdc++ # Compile directly from source 
ld source1.o source2.o -o output -lstdc++ # Link together object files 
Các vấn đề liên quan