2015-02-16 3 views
1

У меня есть проект в QT, и я бы хотел использовать qmake для компиляции одного дополнительного файла cpp, который (в автономный исполняемый файл) никоим образом не связан с моим приложением или даже QT (это простая простая программа на C++). Есть ли способ сделать это, не воспрепятствуя всей структуре проекта? Нужен ли мне отдельный файл .pro для каждого исполняемого файла или есть ли другой способ простого компиляции только одного простого C++-файла?qmake: скомпилировать один файл cpp в исполняемый файл

ответ

1

Чтобы сделать дополнительный исполняемый файл вы можете использовать использовать system() в .pro так:

system(g++ otherapp.cpp) 

который будет построен каждый раз, когда вы называете qmake. Однако, если вы хотите автоматически создать дополнительное приложение при его изменении, используйте вместо этого QMAKE_EXTRA_TARGETS.

+0

QMAKE_EXTRA_TARGET - это то, что мне нужно. Мне также нужно было добавить цель в PRE_TARGETDEPS, и теперь все делается автоматически, когда QT Creator компилирует проект. Благодаря! – solusipse

3

Как вы знаете qmake -project будет сделать один .pro файл с именем папки, содержащей все исходные и файлы заголовки, если вы QMAKE этого про файл, то make вашего проект, вы получите скомпилированные .o файл из нового файла CPP даже если он напрямую не связан с вашим проектом Qt.

, но если этот файл получил main() функция, конечно, у вас будет несколько ошибок определения main() компилятором.

вам нужно будет восстановить этот файл, конечно

, как вы знаете, для простого составления только один стандартной равнины C++ файла, который вы только что

g++ source.cpp -o excutable_name.exe 

для более строгой компиляции с двумя шагами:

g++ -Wall -pedantic -ansi source.cpp -c compiled_file_name.o 
g++ compiled_file_name -o excutable_name.exe 

, но если вы собираетесь использовать, например, код, относящийся к Qt, вы должны включить заголовки Qt и связать необходимые библиотеки:

g++ -Wall source.cpp -c compiled_file_name.o -L qt/library/path -lQtGui -lQtCore -lQtother_necessary_libraries -I Qt/include/path -I Qtother_necessary_include_paths 
+0

Я хотел бы сделать все, используя только одну команду ('qmake project.pro'), как это делает QT Creator (которую я использую для компиляции моего проекта). Возможно ли это без шаблона subdirs? – solusipse

+0

вы хотите сделать компиляцию для одного простого файла C++ или нескольких файлов ?. если несколько сложных файлов вам лучше использовать инструменты make, такие как qmake или cmake, но если только один простой файл C++ вы можете просто использовать командную строку 'g ++' напрямую – Youssef

Смежные вопросы