2011-08-31 16 views
8

Tôi có thư viện C chuẩn để biên dịch tốt trên Mac OS X bằng gcc.MinGW "Không thể định vị được điểm nhập thủ tục libiconv ..."

Tôi đã kiểm tra các trình biên dịch C có sẵn cho Windows, và chọn MinGW cho một vài lý do:

  • công cụ của MS không hỗ trợ C99
  • Cygwin et. al. thêm một cấp thêm phức tạp với thi đua posix rằng tôi không muốn
  • Không thể có được lcc-win32 để làm việc

Tuy nhiên, khi tôi cố gắng để xây dựng thư viện của tôi, tôi nhận được điều này:

enter image description here

thứ này tất cả có vẻ rất cổ xưa, và có thực tế không khá tài nguyên trực tuyến mà tôi có thể tìm thấy.

Mọi trợ giúp sẽ được đánh giá cao.

Cảm ơn.

EDIT:

Nó không quan trọng những gì tôi đang cố gắng xây dựng. Ngay cả khi tôi chỉ tạo một tệp với một hàm có thêm hai số. Nó bị treo. Dường như không liên quan gì đến mã nguồn hoặc các tùy chọn được chuyển đến gcc. Tôi nghĩ rằng đây là một vấn đề với thiết lập MinGW của tôi và không phải với dự án của tôi.

+0

Lỗi này được tạo khi bạn xây dựng một DLL? –

+0

Nó không quan trọng những gì tôi đang cố gắng để xây dựng. Ngay cả khi tôi chỉ tạo một tệp với một hàm có thêm hai số. Nó bị treo. Dường như không liên quan gì đến mã nguồn hoặc các tùy chọn được chuyển đến gcc. – Steve

+1

Rõ ràng cài đặt mingw của bạn được borked. Bạn đã cài đặt như thế nào? –

Trả lời

26

Đảm bảo bạn có C: \ MinGW \ bin trong đường dẫn của mình trước bất kỳ thư mục nào khác chứa libiconv-2.dll. Rõ ràng là as.exe trong một số bản phân phối MinGW phụ thuộc vào DLL đó và có phiên bản cũ hơn trong đường dẫn (ví dụ: công cụ GnuWin32) sẽ gây ra as.exe để nhận phiên bản cũ hơn mà không có điểm vào .

Xem:. http://sourceforge.net/tracker/index.php?func=detail&aid=3375870&group_id=200665&atid=974439

Lưu ý - bạn sẽ có thể để thay thế cũ libiconv-2.dll với phiên bản mới hơn trong \MinGW\bin - việc đặt tên của DLL nên có nghĩa là nó tương thích với một trong những cũ lạc hậu (ví dụ, phần mềm cũ hơn không phụ thuộc vào việc anh ta xuất khẩu mới hơn nên tiếp tục hoạt động). Tuy nhiên, tôi đã không thử nghiệm vì vậy hãy chắc chắn để sao lưu nếu bạn quyết định thử thay thế các DLL xung đột với một từ cài đặt MinGW của bạn.

+2

Thú vị. Tôi đã cài đặt GnuWin32. Hãy để tôi thử điều này và lấy lại cho bạn. Tôi cũng có 'C: \ MinGW \ bin' trong' PATH' của tôi, nhưng nó là * sau * GnuWin32 Tôi tin ... vì vậy nếu có xung đột với GnuWin32, tôi tin rằng hệ thống sẽ tìm phiên bản GnuWin32 * trước tiên *. Điều này chắc chắn có vẻ giống như một lời giải thích hợp lý về những gì đang xảy ra ở đây. – Steve

+0

Bingo. Tôi ước tôi có thể cho bạn nhiều phiếu bầu hơn. Đây chính xác là vấn đề (xung đột với GnuWin32). – Steve

+0

Chúc mừng chap. Trong khi điều tra những gì đang xảy ra, tôi thấy rằng tôi có thể biên dịch mọi thứ nếu tôi gọi gcc trong khi thư mục hiện tại của tôi _was_ \ mingw \ bin. Trong trường hợp đó, as.exe đã được hạnh phúc. Nhưng bất kỳ pwd khác và nó đã không được. Cám ơn vì cái này. Tôi đã nhìn vào một số loại vấn đề dll không phù hợp trong khi xây dựng, không chỉ là as.exe đã không bắt đầu đúng. Chúc mừng. – RichColours

2

Ngoài việc đảm bảo C: \ MinGW \ bin nằm trong PATH của bạn trước bất kỳ thứ gì khác, bạn cũng nên khởi động lại máy của mình (hoặc có thể đăng xuất/đăng nhập), để đảm bảo PATH của bạn thực sự được cập nhật.

Các vấn đề liên quan