我目前正在使用Eclipse Juno,CDT和Cygwin C ++开发一个介绍性的C ++项目。我正在使用MVC架构并且刚刚获得了代码,我可以运行可执行文件并查看一些结果。当我构建应用程序时,编译器不会抛出任何错误;但是,当我通过Eclipse运行应用程序时,应用程序将重建并显示以下错误:
make: *** multiple target patterns. Stop. GasFinderTUI.d KyleGasStationFinder/Debug/src/View line 1 C/C++ Problem
以下是该文件中的代码:
src/Controller/GasFinderController.d src/Controller/GasFinderController.o: \
../src/Controller/GasFinderController.cpp \
../src/Controller/GasFinderController.h \
C:/Users/Kyle/Dropbox/Workbench/KyleGasStationFinder/src/Model/LocalGasStations.h \
C:/Users/Kyle/Dropbox/Workbench/KyleGasStationFinder/src/Model/GasStation.h \
C:/Users/Kyle/Dropbox/Workbench/KyleGasStationFinder/src/Model/GasPump.h \
C:/Users/Kyle/Dropbox/Workbench/KyleGasStationFinder/src/Model/Utilities.h
../src/Controller/GasFinderController.h:
C:/Users/Kyle/Dropbox/Workbench/KyleGasStationFinder/src/Model/LocalGasStations.h:
C:/Users/Kyle/Dropbox/Workbench/KyleGasStationFinder/src/Model/GasStation.h:
C:/Users/Kyle/Dropbox/Workbench/KyleGasStationFinder/src/Model/GasPump.h:
C:/Users/Kyle/Dropbox/Workbench/KyleGasStationFinder/src/Model/Utilities.h:
我尝试过清理和重建,没有使用run函数,应用程序构建得很干净。我还运行没有Eclipse的实际.exe文件,应用程序按预期运行。尽管与Eclipse分开运行应用程序是可以接受的替代方案,但我将在不久的将来用C ++编写多个应用程序,并且非常欣赏从Eclipse执行的能力。这些应用程序也将使用Eclipse进行检查和评分,我确信我的教师也会喜欢这种便利。
我查看了this question,建议更改C:/作为相对路径名,或/ cygwin / c /。我的其他.d文件,以及我的包含路径,使用相对路径,这些文件没有问题。虽然我相信这两种解决方案都能正常工作,但每次编译都会重新创建.d文件。我所做的所有更改都会在每次构建时被覆盖。
Eclipse和/或Cygwin C ++是否包含可能允许我阻止此复杂事件发生的任何设置?
答案 0 :(得分:3)
我已经发现我可以在Eclipse中运行项目,只有在每次运行之前我手动清理它。此外,如果我在每次构建之前手动清理它,那么构建是成功的。在提交此作业后,我将研究为编译创建自定义脚本。
答案 1 :(得分:1)
使用外部“Gnu Make”构建器时,您还可以删除“多个目标模式”错误。我正在使用带有CDT 8.3.0的Eclipse Kepler,并执行以下操作:
我意识到上述内容特定于特定的工具链设置,但至少它提供了一种可能的替代方法来使托管的Make项目正常工作。
顺便说一句,这是我在StackOverflow上的第一篇文章,所以如果我犯了任何礼仪错误,那么这些都是无心的:)