Подтвердить что ты не робот

Где определены переменные, такие как $(MKDIR) и $(COPY_DIR)?

Я пытаюсь получить значения, которые содержат эти переменные, но я не мог найти информацию о них в Интернете и поиск таких строк в папке C:\Qt ничего не принес.

Где эти переменные определены?

4b9b3361

Ответ 1

Прежде чем обрабатывается файл .pro и ваши файлы Makefiles генерируются qmake, некоторые другие файлы предварительно обрабатываются на основе вашего компилятора и платформы. Эти файлы имеют расширение .prf и .conf и загружаются из каталога mkspecs.

Значения переменных MKDIR и COPY_DIR в ваших Make файлах генерируются значениями переменных QMAKE_MKDIR и QMAKE_COPY_DIR, определенных в следующих файлах:

C:\Qt\Qt5.0.2\5.0.2\msvc2010\mkspecs\Common\оболочки unix.conf:

QMAKE_TAR              = tar -cf
QMAKE_GZIP             = gzip -9f

QMAKE_COPY             = cp -f
QMAKE_COPY_FILE        = $$QMAKE_COPY
QMAKE_COPY_DIR         = $$QMAKE_COPY -R
QMAKE_MOVE             = mv -f
QMAKE_DEL_FILE         = rm -f
QMAKE_DEL_DIR          = rmdir
QMAKE_CHK_EXISTS       = test -e %1 ||
QMAKE_CHK_DIR_EXISTS   = test -d    # legacy
QMAKE_MKDIR            = mkdir -p   # legacy
QMAKE_MKDIR_CMD        = test -d %1 || mkdir -p %1
QMAKE_STREAM_EDITOR    = sed

C:\Qt\Qt5.0.2\5.0.2\msvc2010\mkspecs\Common\оболочки win32.conf:

QMAKE_ZIP              = zip -r -9

QMAKE_COPY             = copy /y
QMAKE_COPY_DIR         = xcopy /s /q /y /i
QMAKE_MOVE             = move
QMAKE_DEL_FILE         = del
QMAKE_DEL_DIR          = rmdir
QMAKE_CHK_EXISTS       = if not exist %1
QMAKE_CHK_DIR_EXISTS   = if not exist   # legacy
QMAKE_MKDIR            = mkdir          # legacy
QMAKE_MKDIR_CMD        = if not exist %1 mkdir %1 & if not exist %1 exit 1

# xcopy copies the contained files if source is a directory. Deal with it.
CONFIG += copy_dir_files

(Как вы можете видеть, я использую Qt 5.0.2, поэтому путь может отличаться на вашем компьютере.)

Ответ 2

Обновление для Qt 5.8

c:\Qt\5.8\mingw53_32\mkspecs\features\spec_post.prf

Windows, как:

QMAKE_ZIP               = zip -r -9

QMAKE_CD                = cd /d
QMAKE_COPY              = copy /y
QMAKE_COPY_FILE         = $$QMAKE_COPY
QMAKE_COPY_DIR          = xcopy /s /q /y /i
# xcopy copies the contained files if source is a directory. Deal with it.
CONFIG                 += copy_dir_files
QMAKE_MOVE              = move
QMAKE_DEL_FILE          = del
QMAKE_DEL_DIR           = rmdir
QMAKE_DEL_TREE          = rmdir /s /q
QMAKE_CHK_EXISTS        = if not exist %1
QMAKE_CHK_DIR_EXISTS    = if not exist   # legacy
QMAKE_MKDIR             = mkdir          # legacy
QMAKE_MKDIR_CMD         = if not exist %1 mkdir %1 & if not exist %1 exit 1
QMAKE_STREAM_EDITOR     = $(QMAKE) -install sed
QMAKE_INSTALL_FILE      = copy /y
QMAKE_INSTALL_PROGRAM   = copy /y

Linux-как:

QMAKE_TAR               = tar -cf
QMAKE_GZIP              = gzip -9f

QMAKE_CD                = cd
QMAKE_COPY              = cp -f
QMAKE_COPY_FILE         = $$QMAKE_COPY
QMAKE_COPY_DIR          = $$QMAKE_COPY -R
QMAKE_MOVE              = mv -f
QMAKE_DEL_FILE          = rm -f
QMAKE_DEL_DIR           = rmdir
QMAKE_DEL_TREE          = rm -rf
QMAKE_CHK_EXISTS        = test -e %1 ||
QMAKE_CHK_DIR_EXISTS    = test -d    # legacy
QMAKE_MKDIR             = mkdir -p   # legacy
QMAKE_MKDIR_CMD         = test -d %1 || mkdir -p %1
QMAKE_STREAM_EDITOR     = sed

equals(QMAKE_HOST.os, Windows) {
    MINGW_IN_SHELL = 1   # legacy
    # Override built-ins.
    QMAKE_DIR_SEP = /
    QMAKE_DIRLIST_SEP = :
    # Because install ability to set permissions is not relevant on Windows,
    # and git msys does not provide it to start with.
    QMAKE_INSTALL_FILE      = cp -f
    QMAKE_INSTALL_PROGRAM   = cp -f
} else {
    QMAKE_INSTALL_FILE      = install -m 644 -p
    QMAKE_INSTALL_PROGRAM   = install -m 755 -p
}

Ответ 3

Используя Terminal на моем Mac,

mkdir создает каталог в текущем каталоге, в котором вы находитесь. Предположим, что мой текущий каталог имя пользователя: ~/parent_directory $, если вы наберете mkdir code и нажмите enter, он создаст каталог с именем code