Win10 Rust 編譯報錯: linking with `link.exe` failed: exit code: 1181


解決途徑:(注意,最好不要用git bash上運行rust命令,我這邊用cmd運行成功的【當然中間經過了很多步驟所以也不清楚這個是不是原因之一】)

一:注意安裝VS2017(最好不要安裝更高版本以防不支持),然后添加link.exe的目錄到PATH,如下:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64

二:重啟后如果還是不能編譯,則更新Windows10系統到最新(重啟)再試試;

 

三:如果上面都不行,需要在控制台里用cargo run(或者加verbose),然后會看到有報錯提示:

 = note: Non-UTF-8 output: LINK : fatal error LNK1181: \xce\xde\xb7\xa8\xb4\xf2\xbf\xaa\xca\xe4\xc8\xeb\xce\xc4\xbc\xfe\xa1\xb0libpq.lib\xa1\xb1\r\n

這里的是亂碼(是GBK的,如果GBK轉換無效再試試UTF-8的),可以用Python或者Java來轉換:

Python:(內容寫自己的)

content = b"LINK : fatal error LNK1181: \xce\xde\xb7\xa8\xb4\xf2\xbf\xaa\xca\xe4\xc8\xeb\xce\xc4\xbc\xfe\xa1\xb0sqlite3.lib\xa1\xb1"
print content.decode("gbk")

Java:

String str = "LINK : fatal error LNK1181: \\xce\\xde\\xb7\\xa8\\xb4\\xf2\\xbf\\xaa\\xca\\xe4\\xc8\\xeb\\xce\\xc4\\xbc\\xfe\\xa1\\xb0sqlite3.lib\\xa1\\xb1";
str = str.replace("\\x", "%");
System.out.println(URLDecoder.decode(str, "gbk"));

我這邊的是提示:LNK1181: 無法打開輸入文件“libpq.lib”

經過百度得知libpq.lib是Postgres數據庫里的東西,於是安裝Postgres,但是發現還是報錯;

這個時候可以試着重啟看看,如果不行則是找到Postgres的這個庫文件,然后將其所在目錄添加到PATH里,我這邊是:E:\Apps\PgDB11\lib;

接着重開terminal(重要,也許還需要重啟),並且cargo clean后在cargo run就OK了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM