ld工具可以找到库,但mingw不能(linux) 现在,我尝试编译一些C++代码,这些代码使用PoDoFo和MaGik++(IMAGE)的一部分,使用Linux上的MINW。我正在使用MinGW,以便为Windows编译。当我尝试编译时,出现以下错误: /usr/lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld: cannot find -lpodofo

ld工具可以找到库,但mingw不能(linux) 现在,我尝试编译一些C++代码,这些代码使用PoDoFo和MaGik++(IMAGE)的一部分,使用Linux上的MINW。我正在使用MinGW,以便为Windows编译。当我尝试编译时,出现以下错误: /usr/lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld: cannot find -lpodofo,c++,mingw,ld,magick++,podofo,C++,Mingw,Ld,Magick++,Podofo,但是,当我运行ld-L/usr/local/lib-lpodofo--verbose时,它能够找到库。我如何解决这个问题?我有一个理论,MinGW的链接器无法找到它,但是原始GNU工具的链接器能够找到它。如果这是问题所在,我不太确定如何着手解决它 正如更多信息一样,以下是我的代码中的include部分: #include <iostream> #include <string> #include <podofo.h> #include <Magick++

但是,当我运行
ld-L/usr/local/lib-lpodofo--verbose
时,它能够找到库。我如何解决这个问题?我有一个理论,MinGW的链接器无法找到它,但是原始GNU工具的链接器能够找到它。如果这是问题所在,我不太确定如何着手解决它

正如更多信息一样,以下是我的代码中的include部分:

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

注意,为了让MinGW甚至将PoDoFo添加到它的include目录中,我不得不做了一系列的更改,所以这可能无法在其他人的计算机上重现。此外,我能够使用
g++

正确编译此库,因为它是为使用elf64-x86-64格式的linux编译的。它与mingw不兼容,mingw需要pei格式的库(可能是pei-x86-64格式)


要使用此库,您需要找到库的mingw版本或自己交叉编译。

您是否已将库安装到mingw环境中?你是怎么安装的?你有没有检查过它是否真的随PoDoFo图书馆一起提供?也许PoDoFo需要单独安装?请您澄清一下将其安装到MinGW环境是什么意思?我使用
pacman
安装了它,并在编译器命令中手动链接了代码。我还应该补充一个问题,即我的代码可以用g++正确编译和运行。谢谢您的回答。这似乎是真的。我会尝试一下,如果不起作用,我会问任何问题。
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