簡體   English   中英

ld 工具可以找到庫,但 mingw 不能(linux)

[英]ld tool can find the library but mingw cannot (linux)

現在,我正在嘗試在 Linux 上使用 MinGW 編譯一些同時使用 PoDoFo 和 Magick++(ImageMagick 的一部分)的 C++ 代碼。 我正在使用 MinGW,所以我可以為 Windows 編譯。 當我嘗試編譯時,出現此錯誤:

/usr/lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld: cannot find -lpodofo

但是,當我運行ld -L/usr/local/lib -lpodofo --verbose ,它能夠找到該庫。 我將如何解決這個問題? 我有一個理論,即 MinGW 的鏈接器無法找到它,但原始 GNU 工具的鏈接器能夠找到它。 如果這是問題所在,我不太確定我將如何解決它。

就像更多信息一樣,這是我代碼中的包含部分:

#include <iostream>
#include <string>
#include <podofo.h>
#include <Magick++.h>
#include <vector>
#include <thread>

這是我的編譯命令:

x86_64-w64-mingw32-g++ main_multithreaded.cpp -L /usr/local/lib `Magick++-config --cppflags --cxxflags --ldflags --libs` -I"/usr/local/include/PoDoFo" -l"podofo" -DDEBUG

請注意,為了讓 MinGW 甚至將 PoDoFo 添加到其包含目錄中,我必須進行大量更改,因此這可能無法在其他人的計算機上重現。 另外,我可以用g++正確編譯它

您的 ld 找到了該庫,因為它是為使用 elf64-x86-64 格式的 linux 編譯的。 它與需要 pei 格式(可能是 pei-x86-64 格式)的庫的 mingw 不兼容。

為了使用這個庫,你需要找到該庫的 mingw 版本或者自己交叉編譯它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM