cuốn sách gpt4 ai đã làm

链接&编译后C执行错误

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 04:20:41 30 4
mua khóa gpt4 Nike

Tôi nhận được một số kết quả lạ khi cố gắng liên kết với thư viện bên ngoài. Nếu tôi chạy lệnh sau từ dòng lệnh:

gcc fftwTest.c -I../extlib/fftw-3.3.5-dll32 -L../extlib/fftw-3.3.5-dll32 -lfftw3-3 -lm -o kiểm tra

test.exe biên dịch, nhưng khi chạy nó, tôi nhận được thông báo lỗi cho biết chương trình không thể khởi động vì máy tính của tôi thiếu libfftw3-3.dll. Mặc dù trình liên kết đã tìm thấy nó tại thời điểm biên dịch.

Thay vào đó, nếu tôi đặt libfftw3-3.dll vào cùng thư mục với tệp fftwTest.c của tôi và thực hiện -L ở đó, nó sẽ biên dịch và chạy tốt. Vì vậy, tôi đoán điều này cho thấy rằng tôi đang làm sai điều gì đó với lệnh -L, nhưng khi liên kết và biên dịch, tôi không thể hiểu được điều gì.

Bất kỳ trợ giúp sẽ được đánh giá rất cao.

Cảm ơn!

câu trả lời hay nhất

Không có gì sai với lệnh liên kết của bạn, vâng, trình liên kết đã tìm thấy nó khi biên dịch vì bạn đã chỉ định đường dẫn đến nó, nhưng không thể nói điều tương tự khi chạy chương trình (trình liên kết không/không thể mã hóa cứng đường dẫn đến DLL, có thể là nằm ở nơi khác trên máy triển khai.

DLL phải nằm trên đường dẫn hệ thống hoặc trong cùng thư mục với tệp thực thi. Trong trường hợp của bạn, bạn có thể:

  • Sao chép DLL trong thư mục .exe (mà bạn tự tìm thấy)
  • Hoặc thêm phần này trước khi bắt đầu thực thi trong tệp bó:đặt PATH=%PATH%;../extlib(Hoặc sử dụng quản lý biến môi trường Windows để đặt đường dẫn tuyệt đối hoàn chỉnh trong đường dẫn hệ thống)

Khi phân phối gói cho bên thứ 3, tốt hơn là sao chép DLL trong thư mục thực thi để không cần cấu hình, tuy nhiên nếu bạn sử dụng/nâng cấp DLL nhiều lần và trên nhiều chương trình nhỏ thì giải pháp tốt nhất là máy phát triển của bạn là đặt nó ở một nơi và đặt hệ thống PATH để chạy nó (đó là sự đánh đổi)

Về lỗi thực thi C liên kết và biên dịch sau, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/47236727/

30 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress