gpt4 book ai didi

c++ - 从代码内部编译 QT 源代码

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:12:53 25 4
gpt4 key购买 nike

我正在使用动态编译和加载的库。为了使这对我来说更容易,我的解决方案只是创建一个 bash 代码,我调用它来编译所有内容,但我目前正在努力将其移植到 Windows,但我不确定如何获得相同的结果。

此外,它是一个 QT 应用程序,因此需要使用 qmake 而不是 g++。

我正在执行的代码:(我总是为其提供文件名参数)

#! /bin/bash

cd "${0%/*}";
if [ $# = 0 ]; then echo "Error: No Arguments Supplied"; exit 7; fi;
if ! [ -a "$1.cc" ]; then echo "Error: Invalid Arguments Supplied"; exit 7; fi;

rm -f "$1.so";

cp template.pro tmp.pro;
echo "QT += widgets" >> tmp.pro;
echo "SOURCES += $1.cc" >> tmp.pro;
echo "CONFIG += c++11" >> tmp.pro;

qmake -norecursive tmp.pro;
make;
mv libtmp.so.1.0.0 "$1.so";

rm -f Makefile tmp.pro *.o;
find . -name 'libtmp.so*' -delete;

最佳答案

首先,您需要在 Windows 机器上安装 bash。阅读herehere例如(我相信还有许多其他来源,您可以在其中阅读有关在 Windows 上执行 bash 脚本的信息)

其次,很遗憾,您的 template.protmp.pro 文件在 Linux(或 Unix)和 Windows 之间不兼容。您的代码中最明显的示例是 libtmp.so - 在 Windows 上,库将具有不同的名称和扩展名 .dll,但也会有其他差异。

您需要在 .pro 文件中使用条件:

#
# Windows section:
#
win32 {
# pro text for Windows here
}

#
# Linux/Unix section
#
unix {
# pro text for Linux/Unix here
}

# possible common part here

关于c++ - 从代码内部编译 QT 源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38040169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com