File format not recognized, treating as linker script


問題背景:

    VirtualBox下linux虛擬機,  linux下其它目錄git clone下code,編譯正常。

    通過shared folders的方式,共享虛擬機linxu與win10主機之間進行文件傳遞。 配置好后,能正常共享文件,訪問修改等操作。詳細配置見前文:virtualBox6.1共享目錄

     Win10下路徑c:\chared         Linux下路徑: /home/xxx/shared_linux

   問題來了:  在共享目錄下(whatever win10 or linux)git clone下來code,然后進行編譯,提示錯誤:

              libavfilter.so: file format not recognized, treating as linker script

              libavfilter.so0: syntax error

               

總結:

         同一份code,在linux其它目錄編譯正常,在虛擬機下的共享目錄下編譯就報錯誤。 

原因:

      查看正常能編譯過的目錄下:libavfilter.so,發現是一個軟連接,link到libavfilter.so.7.57.100上,

               切換到共享目錄下,發現軟連接不在了

               這就明顯了,由於共享目錄,在win下由於文件系統不支持軟連接,所以編譯導致無法正常link到原始的庫上,所以報錯。

解決:

    將正常能編譯路徑下的庫,打個包tar, zip等,copy到共享目錄,然后在win下使用win的解壓縮工具解壓開,即可。

               

               注意:不能在linux的解壓,會報錯:can not create symlink, win和linux的文件系統不一樣,無法創建這個軟連接的。

                


免責聲明!

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



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