Qt 多项目系统中如何指定各项目的编译顺序 (***笔记)

2023-11-15

QT学习笔记-QT多项目系统中如何指定各项目的编译顺序


Qt_pri 创建使用.pri文件

Qt pro文件、pri文件的写法

 ---------------------------------------------------

Qt 多项目系统中如何指定各项目的编译顺序 (***笔记)
https://blog.csdn.net/ken2232/article/details/132127866

Qt工程的目录结构 (**)
https://blog.csdn.net/ken2232/article/details/132352593

 ---------------------------------------------------

参考:
【Qt】如何调整编译顺序?  https://blog.csdn.net/sunriver2000/article/details/112008023

 ---------------------------------------------------

要点:

概念混乱,造成理解困难。

重新定义,如下:

官方默认:

独立基准项目集合、的管理文件为.pro,这里改为 .prof (f:表示复数)。

独立基准项目、的管理文件为.pro,这里改为 .prod (d:表示单数)。

附注:这里的修改,只是为了方便理解和记忆而已。

.prof 和 .prod,它们的官方默认后缀,都是 .pro。实际上,它们的用途是不同的,语法也有所区别,因此,应该可以将它们划分成不同的文件;这样更容易理解。

对独立基准项目 (.pro) 集合进行集中管理 (.prof)

独立基准项目 (.pro) 集合管理文件 (.prof),例子,如下:

untitled_pro_set.pro  ##相当于 .prof文件)的内容

目的:将各个独立基准项目,集中管理

TEMPLATE = subdirs
SUBDIRS += \
    untitled \
    untitled1

CONFIG += ordered   ## 按照从下行到上行的执行顺序,进行编译? 

运行顺序:虽然构建是多个项目一起按照某种顺序,进行一遍地构建;但是,如果没有进行额外的设置,则只能执行一个构建后的 app。

如何执行构建后所期望的 app? :

一种办法,如:

SUBDIRS += \
    untitled \
    untitled1 \
    untitled2

1. 清除已构建的文件;

2. 只保留 untitled1进行构建并运行;此时即为 untitled1;

3. 恢复,以后每次都是启动 untitled1 app.

可能原因:执行被记录在 app的记忆文件里,但是,没有菜单选项可以直接进行选择?

QtCreator同时运行多个程序

如下图所示:将Stop applications before building设置为:

    None:支持同时打开编译运行多个程序;
    Same Project:同一个工程只支持打开一个程序;
    ALL:所有工程只支持打开一个程序;
    Same Build Directory:同一生成路径只支持打开一个程序,例如:untitled工程debug编译和release编译可以打开两个程序,但是debug只能生成一个或者release只能生成一个,如果在pro文件中使用DESTDIR指定了输出到同一文件夹下,则debug和release只能打开一个程序。
————————————————
原文链接:https://blog.csdn.net/qq_43627907/article/details/128367331

对内嵌附属项目 (.pri) 集合进行集中管理 (.prod)

在独立基准项目的 .pro文件中,至少加入,如下语句:

include(../../BuildConfig.pri)

-----------------------------------------------------------------------------

上图,显示:独立基准项目,可以在后期,再加入到 对独立基准项目 (.pro) 集合进行集中管理 (.prof)。

当然,也可以手工完成。

 

注:

1. 内嵌附属项目的编译,受到基准项目的.pro文件的控制。而基准项目集合之下的项目,是可以独立构建的。

2. 引入第三方的 src文件时,可能最好采用独立项目模型;编译成库文件。

如果采用内嵌附属项目模型,则会受到其上的独立项目.pro文件的影响,造成无法直接成功编译。

3. 在 Qt Creator中,独立基准项目和内嵌附属项目,还是有区别的。

内嵌附属项目是独立基准项目的子集,表现、或理解为“模块”更恰当。

从“Add New”菜单中,它们的菜单既有相同的部分,也有不同的部分,可以看到它们的主要区别。应该属于集合和子集的关系?

4. 内嵌附属项目,在目录和文件结构上,与独立基准项目类似。但在可用的内容模块上,与独立基准项目有很大的不同。

5. 区别 .pro文件 和 .pri文件

5.1. 在内容表现上,类似。但是,在使用它们的方法上,有所不同。

.pro文件直接被 Qt Creator使用;而 .pri文件则是被 .pro文件引用。

5.2. 两种文件的内容,都可以由 Qt Creator建立。

5.2.1. 但是,程序员受限需要手动建立一个空内容的 .pri文件,并手动 include到 .pro文件中;然后,

执行一次 build,使得 内嵌附属项目出现在 Qt Creator中,并受其管理。

以后的 .pri文件的内容,也会受到 Qt Creator的读写管理。

5.2.2. .pro文件直接由 Qt Creator创建,可以不需要程序员关心。

=============================

QT学习笔记-QT多项目系统中如何指定各项目的编译顺序

具体操作

1、首先看一个QT的多项目(子项目)的.pro文件内容,如下:

# 以下模版说明当前项目是有子项目的项目
TEMPLATE = subdirs
# 当前项目包含的子项目
SUBDIRS += \
    a3lib \
    common \
    plc \
    test

我实际的引用(依赖)关系是
test 引用 plc(就是说在编译test之前需要先编译plc才行)
plc 引用 common(就是说在编译plc之前需要先编译common才行)
common 引用 a3lib(就是说在编译common之前需要先编译a3lib才行)

    默认各子项目(a3lib、common、plc、test)的编译是没有顺序的。

2、要想让QT按上面的顺序进行编译,只需在.pro文件中增加CONFIG += ordered就可以。

    CONFIG += ordered

如下:

# 以下模版说明当前项目是有子项目的项目
TEMPLATE = subdirs
# 指定工程的编译顺序
CONFIG += ordered
# 当前项目包含的子项目
SUBDIRS += \
    a3lib \
    common \
    plc \
    test

————————————————
版权声明:本文为CSDN博主「CodingPioneer」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zlbdmm/article/details/129422288

Qt pro文件、pri文件的写法

1、pro文件概述

.pro文件中,主要包含以下变量:

变量     含义
CONFIG 一般项目配置选项
DESTDIR 放置可执行文件或二进制文件的目录
FORMS 由用户界面编译器(uic)处理的ui文件列表
HEADERS 构建项目时使用的头文件(.h)列表
QT 项目中使用到的Qt模块列表,比如sql、network
RESOURCES 项目中包含的资源文件(.qrc)列表
SOURCES 构建项目时要使用的源代码(.cpp)文件列表
TEMPLATE 用于该项目的模板,可以选择应用程序,库还是插件

2、具体写法

(1)、DESTDIR

指定生成的应用程序放置的目录

DESTDIR += ../bin    //当前目录的上一级的bin文件夹
DESTDIR +=  $$PWD/bin   //当前目录的bin文件夹

(2) 、指定生成的moc、ui、obj、rcc文件的存放目录

//这里是在build-xxxxx-Desktop_Qt_5_12_9_MSVC2017_64bit-Release的src文件夹
MOC_DIR     += ../moc
RCC_DIR     +=../ res
UI_DIR      += ../ui
OBJECTS_DIR += ../obj

(3) 、头文件包含的路径

INCLUDEPATH += $$PWD/include//当前目录的include文件夹下

(4) 、程序编译时依赖的相关路径

    //当前目录的include文件夹
    DEPENDPATH += $$PWD/include

(5) 、lib包引入的路径,区分linux系统和windows系统

#temporary file dir临时文件存放目录
CONFIG(debug, debug|release){
    DESTDIR = $${PWD}/bin/Qt_$${QT_VERSION}_Debug
    LIBS+= -L$${PWD}/bin/Qt_$${QT_VERSION}_Debug
    }
    else{
    DESTDIR = $${PWD}/bin/Qt_$${QT_VERSION}_Release
    LIBS+= -L$${PWD}/bin/Qt_$${QT_VERSION}_Release
    }
 
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/lib/xxxx/ -lxxxx
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/lib/xxxx/ -lxxxxd
else:unix: LIBS += -L$$PWD/lib/xxxx/ -lxxxxc

3、pri文件

可以把.pro文件中的一部分内容单独放到.pri文件中,这样,在写大型项目时,就可以直接通过include引用。

(1)需要手动新建BuildConfig.pri文件,创建一个文本文件,然后修改后缀即可

(2)在.pro文件中加入

根据自己的目录来写

include(../../BuildConfig.pri)
include($$PWD/BuildConfig.pri)

(3) 通过上面的方式进行引用即可,一般在.pri文件中写DESTDIR和CONFIG

Qt Pri详解

更新:2023-05-21 07:58

  https://www.python100.com/html/109872.html

一、Pri文件简介

在Qt中,Pri文件是一种项目文件,用于将C++代码、JavaScript文件、资源文件等链接在一起,并生成可执行文件。Pri文件中可以定义编译规则、链接规则、生成规则、部署规则等等,通过使用不同的变量和函数,来实现各种复杂的构建流程和部署流程。

Pri文件是基于Makefile语法的,因此需要使用一定的Makefile知识。同时,Qt Creator集成开发环境及其命令行工具Qt Build System(qbs)可以方便地生成Pri文件并进行构建,使得在不需要编写完整的Makefile的情况下进行快速开发和构建成为可能。

二、Pri文件编写基础

Pri文件的编写离不开变量、函数和条件判断等基础语法。

1. 变量的定义

Pri文件中的变量可以是预定义的系统变量,如$$PWD表示Pri文件所在的目录;也可以是用户自定义的变量,如SRC_DIR表示源文件目录。变量定义的语法是:

VARIABLE_NAME = variable_value

其中,VARIABLE_NAME为变量名,variable_value为变量的值。在变量的值中,可以嵌入其他变量,例如:

SRC_DIR = $$PWD/src
OBJ_DIR = $$PWD/obj
OBJECTS_DIR = $$OBJ_DIR/$$TARGET

其中,$$TARGET表示生成文件的目标类型,可以是exe、dll、plugin等。

2. 函数的使用

Pri文件中的函数可以大大简化复杂的构建流程,例如文件搜索、文件生成、文件拷贝、库链接等等。

函数的语法是:

FUNCTION_NAME(arg1, arg2, ...)

其中,FUNCTION_NAME为函数名,arg1、arg2等为函数的参数。常用的函数包括:

  • files:用于搜索指定目录下的所有文件
  • subdirs:指定当前目录下的子目录
  • target.sources:为目标文件指定源文件
  • target.depends:指定目标文件所依赖的文件
  • target.commands:为目标文件指定编译命令、链接命令等
  • target.path:指定目标文件生成的路径
  • target.link:为目标文件指定需要链接的库文件以及链接命令等

例如:

LIBS += -lfoo
target_link($$TARGET, $$LIBS)

其中,target_link是一个自定义的函数,用于将$$LIBS中指定的库链接到$$TARGET中。

3. 条件判断

在Pri文件中,可以根据具体情况对不同的操作进行条件判断,例如:

win32:LIBS += -lwsock32
else:LIBS += -lsocket -lnsl

其中,win32表示在Windows平台下进行操作,else表示在其他平台下进行操作。

三、Pri文件高级应用

在掌握了基础的Pri文件语法之后,Pri文件可以进行更多复杂的编译任务。

1. 如何指定编译器

在Pri文件中,可以通过设置QMAKE_CXX和QMAKE_CC变量来指定编译器:

QMAKE_CXX = g++
QMAKE_CC = gcc

2. 如何生成动态库和静态库

在Pri文件中,可以通过target.commands指定动态库和静态库的生成规则:

lib.path = /usr/lib
lib.name = foo
lib.files = source1.cpp source2.cpp
lib.commands = $$QMAKE_CXX -shared -o $$lib.target $$OBJECTS

其中,lib.path指定库文件生成的路径,lib.name指定库文件的名称,lib.files指定库文件的源文件,lib.commands指定库文件的生成命令。

3. 如何生成可执行文件和文件拷贝

可执行文件和文件拷贝的生成规则如下:

executable.output = foo
executable.files = source1.cpp source2.cpp
executable.commands = $$QMAKE_CXX -o $$executable.target $$OBJECTS
INSTALLS += exe
exe.target = /usr/bin
exe.files = $$executable.target
exe.commands = $$QMAKE_COPY $$executable.target $$exe.target

其中,executable.output指定可执行文件的名称,executable.files指定可执行文件的源文件,executable.commands指定可执行文件的生成命令。INSTALLS指定生成文件的部署规则,exe.target指定部署目标目录,exe.files指定需要部署的文件,exe.commands指定文件拷贝的命令。

四、Pri文件的使用案例

以下是一个简单的Pri文件的示例:

SRC_DIR = $$PWD/src
OBJ_DIR = $$PWD/obj
TARGET_DIR = $$PWD/bin

INCLUDEPATH += $$PWD/include
LIBS += -ldl

target.path = $$TARGET_DIR
target.name = myapp

message(Building ... $$TARGET)
message(Source files: $$SOURCES)

contains(CONFIG, debug) {
    message(Building in debug mode...)

    TARGET = myappd

    COMMON_FLAGS = -g -O0
}

contains(CONFIG, release) {
    message(Building in release mode...)

    TARGET = myapp

    COMMON_FLAGS = -O2
}

sources = $$files($$SRC_DIR/*.cpp)

target.sources = $$sources

OBJECTS_DIR = $$OBJ_DIR/$$TARGET

mocable_headers = $$_PRO_FILE_PWD_/input.h
mocables = $$mocable_headers
mocables.headers = $$mocable_headers
mocables.commands = $$QTDIR/bin/moc $$mocables.headers -o $$mocables.target

QMAKE_EXTRA_TARGETS += mocables

unix {
    target.commands = $$QMAKE_CXX -o $$TARGET $$OBJECTS $$LIBS
    mocables.target = $${OBJECTS_DIR}/input.moc
    mkdir($${OBJECTS_DIR})
} else {
    target.commands = link -out:$$TARGET.exe $$OBJECTS $$LIBS
    mocables.target = $${OBJECTS_DIR}/input.moc.obj
    mkdir($$system_path($${OBJECTS_DIR}))
}

target.dependency_type = TYPE_C

target.CONFIG += dll
target.LIBS += -lfoo

DISTFILES += $$PWD/post_install_script

mocables.CONFIG += no_link_target

INSTALLS += target mocables
target.files = $$TARGET
mocables.files = $${mocable_headers}

其中,该Pri文件实现了基本的编译和部署任务,具体实现方式如下:

  • 定义了SRC_DIR、OBJ_DIR、TARGET_DIR三个变量,用于指定源文件目录、目标文件目录和可执行文件目录。
  • 指定了头文件搜索路径和库文件搜索路径。
  • 定义了BUILD_MODE变量,用于指定构建模式,debug或release。
  • 根据BUILD_MODE的设置,确定了可执行文件的名称,以及编译选项。
  • 依据源文件目录下的所有.cpp文件,为目标文件指定源文件。
  • 指定了需要运行moc预编译器的头文件,用于生成mocable文件。
  • 指定了可执行文件的链接库、库文件等。
  • 配置了可执行文件的部署规则。

通过这个简单的Pri文件,我们可以看到Qt Pri的强大和方便。在实际开发中,Pri文件可以根据需求定制,支持多库编译、多平台编译、资源文件编译等等,大大提高了开发效率。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt 多项目系统中如何指定各项目的编译顺序 (***笔记) 的相关文章

  • QComboBox 下拉项边距

    我想设计我的风格QComboBox为下拉项目留出边距 现在是这样的 我想要这样的东西 我尝试过 QComboBox QAbstractItemView item margin 3px 但它不起作用 你能帮我解决这个问题吗 您想在项目之间设置
  • 如何去除QWizard中的水平线?

    我正在研究一个样式表QWizard我想删除按钮上方的水平线 我尝试递归浏览所有小部件并将其边框设置为无 但似乎没有任何小部件具有此边框 这是我的代码 可以找到完整的可构建示例here https gist github com ardeid
  • QML 中可重用的字体属性[重复]

    这个问题在这里已经有答案了 在 QML 中 我希望能够定义一组字体属性以进行简单的语义重用 例如 代替 Text text This is a header font family Encode Sans weight Font Black
  • 在 Qt 中使用多个不同的流读取同一文件

    使用 Qt 是否可以使用多个流读取文件以同时访问其中的不同数据部分 请注意 Qt 中的流 QTextStream QDataStream 不处理底层设备中的位置 流类只是一个包装器 用于更轻松地解析设备 QFile 实例 内的二进制数据 因
  • Qt:不完整类型和前向声明的使用无效

    我有一些误解 A h ifndef A H define A H include B h class A public B Q OBJECT public A endif A cpp include A h A A B ui gt blan
  • 无法运行 Qt 应用程序:找不到版本“Qt_5”

    我运行 Ubuntu 16 04 LTS 我的问题是我无法运行可以编译的 Qt5 应用程序 这是我尝试运行它时得到的结果 home user Desktop sconfig dist Release GNU Linux SCongif us
  • Qt QML 数据模型似乎不适用于 C++

    我一直在使用中的示例http doc qt digia com 4 7 qdeclarativemodels html http doc qt digia com 4 7 qdeclarativemodels html这是 QML 声明性数
  • 使用 QGraphicsScene 实现流畅的动画

    我希望我的问题并不总是同样的问题 我有一个 QGraphicsScene 它的项目是一些 QGraphicsPixmap 我用一个计时器来移动它们 每秒 SetX 10 我设置 10是因为窗口大100 使用这个解决方案我的动画不流畅 我想我
  • 即使我在单独的线程中运行,QT GUI 也会冻结

    我有一个小型聊天应用程序 其中使用 SQLite 数据库来存储所有对话 我注意到该应用程序随机冻结 然后我必须最小化和最大化它才能使其再次工作 我认为问题可能是 SQLite 选择 插入导致 gui 冻结 我决定尝试将所有 SQLite 方
  • QFileSystemModel setRootPath

    我正在尝试创建一个 Qt 应用程序来显示文件夹 Mac OS 中的 Users 文件夹 的内容 这是代码 QFileSystemModel dirModel new QFileSystemModel dirModel gt setRootP
  • QML 列表视图拖放

    我想创建两个 qml 列表视图 可以执行两个功能 拖放一个列表中的项目以更改项目的顺序 跨列表拖放项目 项目将从一个列表中删除并添加到另一个列表中 根据 Qt 文档中的拖放示例 我决定创建两个访问同一列表模型的列表视图 列表模型中的每个项目
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • Q风格所有权

    在 Qt 应用程序中使用样式时 我遇到了一个有趣的问题QStyle所有权 QStyle继承自QObject 通常接受QObject parent作为构造函数参数来管理其子级的生命周期 但QStyle的构造函数没有此构造函数参数 第一个问题
  • QAbstractItemModel 如何表示树?

    我仍然很难理解 QAbstractItemModel 对项目的表示 有两种返回 QModelIndex 项的方法对我来说没有任何意义 QModelIndex QAbstractItemModel index int row int colu
  • 如何将 QFile 与 std::iostream 一起使用?

    是否可以像 std iostream 一样使用 QFile 我很确定那里一定有一个包装纸 问题是在哪里 我有另一个库 它需要 std istream 作为输入参数 但在我的程序中 此时我只有一个 QFile 我使用以下代码提出了自己的解决方
  • 是否可以根据 QSlider 的位置来改变其手柄的颜色?

    我非常清楚如何通过样式表自定义 QSlider 但我想知道是否可以执行以下操作 我希望滑块的手柄从蓝色变为黄色 当设置在左侧时 它是蓝色的 设置在左侧时 它是蓝色的 当你将它向右移动时 它会出现从蓝色到黄色的渐变 如果可以通过样式表 如何实
  • QFileDialog::getOpenFileName 调试时崩溃,显然是由项目名称引起的?

    我遇到了一个让我非常困惑的问题 我在 Windows 7 上使用 Qt Creator 3 1 2 和 Qt 5 3 使用 MSVC 10 0 编译器和 Windows 8 1 调试工具中的 CDB 不确定我是否应该寻找特定于 Window
  • 使用 qbs 构建 qt 应用程序

    我想知道在 Linux 上使用 qbs 编译 构建和创建 Android Qt 应用程序的步骤 我拥有所有必要的工具 目前我可以使用 qmake 创建 apk Qbs 目前不支持构建 Qt Android 应用程序 Qbs v1 4 中引入
  • Qt 5.3 QPlainTextEdit 更改 QTextCursor 颜色

    我想更改下面的光标颜色QPlainTextEdit小部件 我能够将其宽度设置为6 但我想改变颜色或者它 是否可以 QFontMetrics fm font setCursorWidth fm averageCharWidth setCurs
  • PyQt5 使动态小部件可点击并将参数传递给另一个函数

    我正在尝试制作动态小部件并使它们可点击 通过单击一个小部件 它应该将动态值传递给其他小部件 我尝试过 sender 和其他访问小部件的选项 但没有任何效果 所有小部件都从最后一个小部件发送信息 下面是代码 import sys from P

随机推荐

  • chatgpt赋能python:怎么让Python执行完不关闭的SEO

    怎么让Python执行完不关闭的SEO 作为一名有十年Python编程经验的工程师 我深知Python在SEO技术中的重要性 然而 很多人可能不知道如何让Python执行完任务后不关闭 这将会影响我们的SEO效果 因此 在这篇文章中 我将向
  • xlwt:ValueError: column index (256) not an int in range(256)

    xlwt最大列只支持255列 超过范围会报错 可以考虑用xlsxwriter
  • 安卓已死?毕业一年萌新的Android大厂面经,年薪超过80万!

    前言 最近我一直在面试高级工程师 不管初级 高级 程序员 我想面试前 大家刷题一定是是少不了吧 我也一样 我在网上找了很多面试题来看 最近又赶上跳槽的高峰期 好多粉丝 都问我要有没有最新面试题 索性 我就把我看过的和我面试中的真题 及答案都
  • layer.msg 的time 时间停留问题

    layer msg 同上 icon 1 time 2000 2秒关闭 如果不配置 默认是3秒 function do something time 属性为弹框停留时间 单位为毫秒 tipsMore 属性为是否同时显示多个弹框 true为显示
  • 顺序表与数组

    顺序表是在计算机内存中以数组的形式保存的线性表 顺序表是指用一组地址连续的存储单元依次存储数据元素的线性结构 线性表采用顺序存储的方式存储就称之为顺序表 顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中 线性表采用指针链接
  • Python 如何将字符串转为字典

    在工作中遇到一个小问题 需要将一个 python 的字符串转为字典 比如字符串 user info name john gender male age 28 我们想把它转为下面的字典 user dict name john gender m
  • Kubespray-offline v2.21.0-1 下载 Kubespray v2.22.1 离线部署 kubernetes v1.25.6

    文章目录 1 目标 2 预备条件 3 vcenter 创建虚拟机 4 系统初始化 4 1 配置网卡 4 2 配置主机名 4 3 内核参数 5 打快照 6 安装 git 7 配置科学 8 安装 docker 9 下载介质 9 1 下载安装 d
  • Linux文件编程常用函数详解——exit()和_exit()函数

    两个函数的区别
  • MongoDB未授权访问漏洞复现及加固

    说明 仅供技术学习交流 请勿用于非法行为 否则后果自负 0x01 漏洞简述 MongoDB是一个介于关系数据库和非关系数据库之间的产品 是非关系数据库当中功能最丰富 最像关系数据库的 它支持的数据结构非常松散 是类似json的bson格式
  • K8s Pod 控制器(一)

    K8s workload architecture 一 RC RS 控制器 控制Pod 使Pod拥有自愈 多副本 扩缩容的能力 RC的定义包括如下几个部分 1 Pod期待的副本数 replicas 2 用于筛选目标Pod的Label Sel
  • vscode常用快捷键使用

    Ctrl K S 全部保存 Save All Ctrl S 保存 Save ctrl f 搜索 alt 方向键右 跳转到定义 F12 转到定义 Go to Definition alt 方向键左 返回跳转 F1 或 Ctrl Shift P
  • 【华为OD机试真题 python】最大平分数组【2022 Q4

    题目描述 最大平分数组 给定一个数组nums 可以将元素分为若干个组 使得每组和相等 求出满足条件的所有分组中 最大的平分组个数 输入描述 第一行输入 m 接着输入m个数 表示此数组 数据范围 1 lt M lt 50 1 lt nums
  • 漫画:什么是中台?

    没有中台的时代 在传统IT企业 项目的物理结构是什么样的呢 无论项目内部的如何复杂 都可分为 前台 和 后台 这两部分 什么是前台 首先 这里所说的 前台 和 前端 并不是一回事 所谓前台即包括各种和用户直接交互的界面 比如web页面 手机
  • CH1-Android基础入门

    文章目录 目标 一 资源的管理与使用 1 1 图片资源 1 2 主题和样式资源 1 3 布局资源 1 4 字符串资源 1 5 颜色资源 定义颜色值 1 6 尺寸资源 Android支持的尺寸单位 二 程序调试 2 1 单元测试 2 2 注意
  • hive中解决中文乱码

    一 个人初始开发环境的基本情况以及Hive元数据库说明 hive的元数据库改成了mysql 安装完mysql之后也没有进行其它别的设置 hive site xml中设置元数据库对应的配置为 jdbc mysql crxy99 3306 hi
  • Vue使用高德地图搜索功能

    下载依赖 yarn add amap amap jsapi loader 2 初始化高德地图 设置key和秘钥
  • Python numpy练习,纯英文ipynb作业26题,100%正确答案(付费)

    md Assigment 2 Instructions This problem set should be done individually Answer each question in the designated space be
  • njx如何实现负载均衡_LVS + keepalived + nginx + tomcat 实现主从热备 + 负载均衡

    前言 首先声明下 由于这两天找资料 看了不少博客 但是出于不细心 参考者的博客地址没有记录下来 所有文中要是出现了与大家博客相同的地方 那么请大家在评论区说明并附上博客地址 我好引用进来 这里表示抱歉了 另外 本文是在我的另一篇博客主从热备
  • element-ui渲染el-table表格小技巧

    element ui中table的使用 当el table元素中注入data对象数组后 在el table column中用prop属性来对应对象中的键名即可填入数据 用label属性来定义表格的列名 可以使用width属性来定义列宽 相当
  • Qt 多项目系统中如何指定各项目的编译顺序 (***笔记)

    QT学习笔记 QT多项目系统中如何指定各项目的编译顺序 Qt pri 创建使用 pri文件 Qt pro文件 pri文件的写法 Qt 多项目系统中如何指定各项目的编译顺序 笔记 https blog csdn net ken2232 art