我使用eclipse在Linux上使用c ++工作。但我也使用Visual Studio。他们没有(或者至少我不知道该怎么做)一个重新链接项目的按钮。
示例:
我有一个大项目(1),有数百个cpp。该项目使用一个小型库(2)来做foo。如果我改变foo行为,并编译它,生成一个库,我需要清理大的proyect(1),重新编译,链接外部库(2)并工作。
问题是大项目没有改变,但是有数百个cpps,它的编译时间大约是5分钟。 5分钟是第二个图书馆的一个小改动。
可以避免这个问题吗?
提前致谢
答案 0 :(得分:5)
我怀疑,但这只是猜测,您的项目在您的foo库与项目中的其他可交付项之间缺少依赖。
通过这种方式,当您修改foo时,编译器不知道它需要重新编译(与foo中的更改一样多)项目的其余部分,这会强制您手动清理和重建。 / p>
通常依赖程序是以高度编译器特定的方式指定的,也许其他post from S.O可以帮助您,或者只是谷歌“eclipse c ++依赖关系管理”。
答案 1 :(得分:3)
您通常会将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中的窗帘背后也是如此,只是隐藏在你身上。
您需要了解的是依赖性检查未按预期工作的原因。如果没有关于如何设置项目的进一步信息,那么确定它有点困难。
答案 2 :(得分:0)
在Linker-Settings-> Miscellaneous->其他对象下添加静态库。如果库较新,您的可执行文件将被重新链接。没有汇编。