Больше внутри IDE (затмение CDT) - PullRequest
1 голос
/ 25 марта 2010

Это то, что я вижу в консоли , когда нажимаю Проект-> Очистить меню:

g++ -O0 -g3 -Wall -c -fmessage-length=0 -osrc\hw.o ..\src\hw.cpp
g++ -ohw.exe src\hw.o

Но я понятия не имею, как генерируются эти команды?

Может кто-нибудь разработать жизненный цикл команды?

Это файл .project:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>hw</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
            <triggers>clean,full,incremental,</triggers>
            <arguments>
                <dictionary>
                    <key>?name?</key>
                    <value></value>
                </dictionary>
                <dictionary>
                    <key>org.eclipse.cdt.make.core.append_environment</key>
                    <value>true</value>
                </dictionary>
                <dictionary>
                    <key>org.eclipse.cdt.make.core.buildArguments</key>
                    <value></value>
                </dictionary>
                <dictionary>
                    <key>org.eclipse.cdt.make.core.buildCommand</key>
                    <value>make</value>
                </dictionary>
                <dictionary>
                    <key>org.eclipse.cdt.make.core.buildLocation</key>
                    <value>${workspace_loc:/hw/Debug}</value>
                </dictionary>
                <dictionary>
                    <key>org.eclipse.cdt.make.core.contents</key>
                    <value>org.eclipse.cdt.make.core.activeConfigSettings</value>
                </dictionary>
                <dictionary>
                    <key>org.eclipse.cdt.make.core.enableAutoBuild</key>
                    <value>false</value>
                </dictionary>
                <dictionary>
                    <key>org.eclipse.cdt.make.core.enableCleanBuild</key>
                    <value>true</value>
                </dictionary>
                <dictionary>
                    <key>org.eclipse.cdt.make.core.enableFullBuild</key>
                    <value>true</value>
                </dictionary>
                <dictionary>
                    <key>org.eclipse.cdt.make.core.stopOnError</key>
                    <value>true</value>
                </dictionary>
                <dictionary>
                    <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
                    <value>true</value>
                </dictionary>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.cdt.core.cnature</nature>
        <nature>org.eclipse.cdt.core.ccnature</nature>
        <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
        <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
    </natures>
</projectDescription>

1 Ответ

1 голос
/ 25 марта 2010

Откройте Debug / makefile или Release / makefile в текстовом редакторе. Он содержит команды, которые вы видите в окне консоли. Кроме того, чистый раздел выполняется, когда вы делаете Чистую, а не обычную сборку.

Как правило, CDT генерирует make-файл в соответствии со свойствами проекта для всех исходных файлов в проектах. Затем он выполняет makefile с помощью команды make с необязательными параметрами. Вы можете сделать то же самое, выполнив команду make из командной строки в каталогах Debug или Release.

Из командной строки это выглядит так:

alex@alex-linux:~/workspace/Test/Debug$ make clean
rm -rf  ./main.o  ./main.d  Test

alex@alex-linux:~/workspace/Test/Debug$ make
Building file: ../main.cpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"main.d" -MT"main.d" -o"main.o" "../main.cpp"
Finished building: ../main.cpp

Building target: Test
Invoking: GCC C++ Linker
g++  -o"Test"  ./main.o   
Finished building target: Test
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...