从代码中编译QT源代码

时间:2016-06-26 15:38:02

标签: c++ bash qt qt5

我使用动态编译和加载的库。我的解决方案是让我更轻松地创建一个我称之为编译所有内容的bash代码,但我目前正致力于将其移植到Windows而我不知道如何实现相同的目标。结果

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

代码I执行:(我总是提供带有文件名的参数)

#! /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;

1 个答案:

答案 0 :(得分:1)

首先,您需要在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