2016-06-20 3 views
0

У меня есть проект Qt, доступ к другому кросс-платформенному (ускорительному) проекту на моем диске. Добавление заголовка не вызывает никаких проблем.QtCreator - проблема с компиляцией - файлы внешнего источника

#include "../../Visual Studio 2015/Projects/..." //Header file down the road 

Добавление существующих исходных файлов в папку источников в моем Qt Project работает также без проблем, файлы найдены, и я могу их открыть. Я считаю, что файлы неправильно скомпилированы - если вообще - поскольку я получаю ошибку компоновщика, сообщив, что %sourcefile%.obj не удалось открыть. (Не создано)

LNK1104: cannot open file 'debug\Error.obj' 

Я попытался скопировать содержимое Error.cpp в новый .cpp файла, созданного в каталоге проекта Qt. После этого сообщение об ошибке переместилось в следующий исходный файл. Теперь я могу сделать это для всех исходных файлов, но это кажется довольно ... неудобным. Изменения в исходном проекте не повлияют на проект Qt.

Кто-нибудь знает проблему/получил решение?

Я уже проверил это question, answer and comments, но это, похоже, не исправило ошибку или ничего не изменило.

+0

Создайте файл '.pri' для вашего внешнего проекта и включите этот файл в файл' .pro'. –

+0

@SebastianLange Не помогает. Я попытался создать файл '.pri' в каталоге внешнего проекта и в каталоге проекта Qt. Использование файла во внешнем проекте, похоже, требует путей, идущих от проекта Qt к исходным файлам, иначе файлы не будут найдены. Ошибка сохраняется в обоих случаях. – Blacktempel

+0

, если вы установили 'INCLUDEPATH + = $$ PWD' и' DEPENDPATH + = $$ PWD', все файлы могут быть добавлены 'SOURCES + = $$ PWD/error.cpp' и заголовки ... Включение теперь просто:' #include '. Ваш файл pri должен быть полным и знать все требуемые источники. Я думаю, что вам не хватает некоторых источников. –

ответ

0

Решение было довольно простым и немного странным. Похоже, что что-то вызывает проблему при использовании путей с пробелами с Qt include(...) и SOURCES в файле *.pro.

//This apparently works and source files are compiled. 
include(C:/ProjDir/ProjName.pri) 

//This works too, but the source files are not being compiled. 
include("../../Visual Studio 2015/Projects/ProjDir/ProjName.pri") 

Благодаря JKSH на Qt-Forums и Sebastian за его намек, используя .pri файл.

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