当静态库不可用时,是否可以从 Linux 交叉编译 Windows

Is it possible to cross compile for Windows, from linux, when static libraries are not available?

本文关键字:Linux Windows 交叉编译 是否 静态      更新时间:2023-10-16

我正在尝试将一个使用Qt,OpenCV和FlyCapture2库的项目编译成Windows 8目标系统的可执行文件。我正在运行 ubuntu 14.04。不幸的是,FlyCapture2 SDK仅提供共享库,因此我无法静态编译这些库。

对我来说,简单地将库包含在与可执行文件相同的目录中是可以的,但是看到我如何在Linux上构建项目(使用Qt Creator),我不确定如何正确链接到Windows目标系统。这是我当前的 .pro 文件:

CONFIG+=static
INCLUDEPATH += /usr/local/include/
LIBS += -L/usr/local/lib -static -lopencv_core -lopencv_imgcodecs -lopencv_highgui -lopencv_videoio -lopencv_imgproc
LIBS += -L/usr/lib -lflycapture -lflycapture-c -lflycapturegui
## Is it possible to link to a .dll for windows here? 

是否可以链接到 Windows 目标系统的.dll?有没有我看不到的这个问题的解决方案?这是我第一次尝试交叉编译。感谢您的帮助,谢谢。

你可以试试这个: 导出LD_LIBRARY_PATH= your_curreny_so_lib_path然后 做

您可以尝试如下内容:

LIBS += -Wl,--start-group
LIBS += -L/usr/local/lib -static -lopencv_core -lopencv_imgcodecs -lopencv_highgui -lopencv_videoio -lopencv_imgproc
LIBS += -L/usr/lib -lflycapture -lflycapture-c -lflycapturegui
LIBS += -Wl,--end-group

这可能对你有用。希望这有帮助。