【问题标题】:How to create a Qt Creator project (.pro) file equivalent to existing Makefile如何创建与现有 Makefile 等效的 Qt Creator 项目 (.pro) 文件
【发布时间】:2016-09-08 02:08:15
【问题描述】:

有一个通过make 命令构建的项目,其中提供了Makefile。以下是Makefile的内容:

TARGETT=gnulinux
OROPATH=/usr/local
CXXFLAGS=-I${OROPATH}/include -DOROCOS_TARGET=${TARGETT} -Wall
LDFLAGS=-L${OROPATH}/lib -Wl,-rpath ${OROPATH}/lib -lorocos-taskbrowser-${TARGETT} -lorocos-rtt-${TARGETT}

all: main

main.o: main.cpp
    $(CXX) -c main.cpp $(CXXFLAGS)

AHRS.o: AHRS.cpp AHRS.h
    $(CXX) -c AHRS.cpp $(CXXFLAGS)

main: main.o AHRS.o 
    $(CXX) -g -o main main.o AHRS.o $(CXXFLAGS) $(LDFLAGS)

clean:
    rm -f main orocos.log .tb_history *.o 

但我习惯使用QtCreator。我知道QtCreator 在构建过程中从项目(.pro)文件构造了自己的makefile。所以,我认为,必须将相关信息从Makefile 内容(上)复制到Qt Creator 项目文件中,以允许QtCreator 生成兼容的makefile。对吧?

鉴于上面的Makefile,.pro 文件应该是什么样子?

在此过程结束时,我将能够从 QtCreator 工作。

【问题讨论】:

  • 学习 CMake,它现在是 C++ 的标准。 QtCreator 可以正常打开 CMake 项目。 Qt 模板:stackoverflow.com/documentation/qt/1991/…
  • 我可以问一个等效于 .pro 的 CMake 文件(由@KubaOber 在下面提供)吗?我对 CMake 进行了一些研究,发现对于我用来处理的项目而言,它比 qmake 更困难。
  • orocos 有一个 CMake 手册(目前在 orocos.org/wiki/orocos/toolchain/getting-started/…)。如果您使用 CMake 正确,那么该项目将为不同的操作系统和处理器架构编译/交叉编译(注意它如何使用 find_package 而不是直接指定路径)。不要以为我可以写一个例子,因为 orocos 的设置过程过于复杂,而且没有准备好使用的 Debian 软件包。

标签: qt makefile qt-creator gnu-make


【解决方案1】:

鉴于上面的 Makefile,.pro 文件应该是什么样子?

像这样:

TEMPLATE = app
TARGET = AHRS # the desired filename of the executable goes here
OROPATH = /usr/local
INCLUDEPATH += $${OROPATH}/include
O_TARGET = gnulinux
DEFINES += OROCOS_TARGET=$${O_TARGET}
QMAKE_RPATHDIR += -L$${OROPATH}/lib
LIBS += -L$${OROPATH}/lib 
LIBS += -lorocos-taskbrowser-$${O_TARGET} -lorocos-rtt-$${O_TARGET}

SOURCES += main.cpp AHRS.cpp
HEADERS += AHRS.h

请注意,Qt Creator 不构造任何东西。 qmake 可以。项目文件是 qmake 项目,而不是 Qt Creator 项目。您根本不需要 Qt Creator 来构建您的项目。您可以从命令行执行此操作,只使用 Qt 和编译器/binutils:

# assume that the source is in AHRS-source subfolder
mkdir AHRS
cd AHRS
/path/to/Qt/bin/qmake ../AHRS-source
make -j
# now we can run it
./AHRS

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-21
    • 1970-01-01
    • 2021-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多