gpt4 book ai didi

c++ - eclipse CDT : rebuilding a dependent project

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:57:00 26 4
gpt4 key购买 nike

我正在使用在 linux 上运行的 eclipse Indigo + CDT 开发一个 C++ 项目

它由一个库项目和一个带有该库单元测试的项目组成。
显然第二个项目依赖于第一个。
两个项目都使用外部构建器

但是当我修改第一个项目的 header 时,它不会重建测试项目。而且我不能让它这样做......它只会重新链接第二个项目,即使标题包含在测试项目中也是如此。这非常烦人,因为我经常在处理库时进行工作构建,然后在某个时候我进行了完全重建,我看到了很多错误,这些都是我 30 分钟前做的事情!

CDT 全局构建控制台的示例输出:

**** Build of configuration Debug for project libxxx ****

make -j all
Building file: ../foo.cpp
Invoking: GCC C++ Compiler
ccache g++ -I"/home/foke/workspaces/cpp/libxxx/include" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"foo.d" -MT"foo.d" -o "foo.o" "../foo.cpp"
Finished building: ../foo.cpp

Building target: libxxx.a
Invoking: GCC Archiver
ar -r "libxxx.a" ./foo.o ./src/yyy.o ./src/detail/zzz.o
ar: creating libxxx.a
Finished building target: libxxx.a


**** Build Finished ****

**** Build of configuration Debug for project libxxx_tests ****

make -k -j all
Building target: libxxx_tests
Invoking: Cross G++ Linker
g++ -L"/home/foke/workspaces/cpp/libxxx/Debug" -o "libxxx_tests" ./main.o ./aaa.o ./tests/bbb.o ./tests/ccc.o ./tests/ddd.o -lboost_unit_test_framework -lxxx
Finished building target: libxxx_tests


**** Build Finished ****

最佳答案

如果您习惯了最新版本的 MS Visual Studio,那么您应该在办公 table 上腾出一 block 空间并用一个巨大的“X”标记它——这不可避免地会让您的拳头甚至您的头沮丧地砰砰作响使用 eclipse/CDT 时。

Eclipse 有它自己的几乎什么都不做的依赖机制,但幸运的是 CDT 模块有它自己的依赖机制,它会尝试做你想做的事。要设置项目依赖项,请转到:

Project-->Properties-->C/C++ General-->Paths and Symbols-->References

因此在您的示例中,您将转到“libxxx_tests”的项目属性并选择“libxxx.a”作为依赖项。

请注意,您还可以使用此页面设置库顺序,这可能是一个重要步骤,具体取决于您项目的复杂程度。

关于c++ - eclipse CDT : rebuilding a dependent project,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6822927/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com