Я работаю в Linux с C ++, используя Eclipse. Но я тоже работал с Visual Studio. У них нет (или, по крайней мере, я не знаю, как это сделать) кнопки, чтобы связать проект.
Пример:
У меня большой проект (1), с сотнями cpp. Этот проект использует небольшую библиотеку (2) для выполнения foo. Если я изменю поведение foo и скомпилирую его, генерируя библиотеку, мне нужно очистить большой проект (1), перекомпилировать, который связывает внешние библиотеки (2) и работает.
Проблема в том, что большой проект не меняется, но с сотнями cpps время его компиляции составляет около 5 минут. 5 минут — небольшое изменение во второй библиотеке.
Можно ли избежать этой проблемы?
заранее спасибо
Вы бы вообще использовали make
с makefile
за это.
С помощью этого метода вы можете создавать свои собственные правила для построения кода, включая обход компиляции большого количества исходных файлов, если вам требуется только перекомпоновка.
Например, makefile
:
prog: main.o other.o makefile
gcc -o prog main.o other.o
main.o: main.c makefile
gcc -c -o main.o main.c
other.o: other.c makefile
gcc -c -o other.o other.c
не будет перекомпилировать main.c
если единственный файл, который вы изменили, был other.c
, Было бы просто скомпилировать other.c
делать other.o
тогда ссылка other.o
а также main.o
вместе, чтобы создать prog
,
Обычно это происходит в мире «командной строки». Вполне вероятно, что это также, как это делается за кулисами во многих IDE, просто скрытых от вас.
Вам нужно выяснить, почему проверка зависимостей работает не так, как ожидалось. Без дополнительной информации о том, как настроен ваш проект, трудно быть окончательным.
Я подозреваю, но это только предположение, ваш проект не хватает зависимость между вашей библиотекой foo и другими результатами в вашем проекте.
Таким образом, когда вы изменяете foo, компилятор не знает, что ему нужно перекомпилировать (столько, сколько требует изменение в foo) остальную часть проекта, и это заставляет вас вручную чистить и перестраивать.
Обычно зависимость указывается в зависимости от конкретного компилятора, может быть, это другое пост от С.О может помочь вам, или просто Google «затмение C ++ управления зависимостями».
Добавьте вашу статическую библиотеку под Linker-Settings-> Разное-> Другие объекты. Ваш исполняемый файл будет просто перекомпонован, если библиотека более новая. Нет компиляции.