我注意到有时当我向项目添加新的.c和.h文件时,Eclipse会决定创建一个新的folderInfo部分。这意味着我对项目设置所做的构建选项更改将仅使用resourcePath =“”
应用于folderInfo<RaisedButton label="Default" style={style} onTouchTap={yourEventHandler} />
并且不会应用于与新folderInfo关联的文件的构建。
<folderInfo id="fr.ac6.managedbuild.config.gnu.cross.exe.debug.887144602." name="/" resourcePath="">
<toolChain id="fr.ac6.managedbuild.toolchain.gnu.cross.exe.debug.999539370" name="Ac6 STM32 MCU GCC" superClass="fr.ac6.managedbuild.toolchain.gnu.cross.exe.debug">
<option id="fr.ac6.managedbuild.option.gnu.cross.prefix.22516938" name="Prefix" superClass="fr.ac6.managedbuild.option.gnu.cross.prefix" useByScannerDiscovery="false" value="arm-none-eabi-" valueType="string"/>
<option id="fr.ac6.managedbuild.option.gnu.cross.mcu.2075272782" name="Mcu" superClass="fr.ac6.managedbuild.option.gnu.cross.mcu" useByScannerDiscovery="false" value="STM32L475VGTx" valueType="string"/>
...
如何防止创建新的folderInfo部分,或者如何在不手动编辑.cproject文件的情况下将更改应用于两个folderInfo部分?
谢谢!
答案 0 :(得分:0)
我仍然不确定为什么会这样,但想发布我的工作。
找到导致问题的顶级文件夹,然后右键单击它并转到&#34;资源配置&#34;&gt;&#34;重置为默认&#34;。通常这&#34;重置为默认&#34;是灰色的,但是当eclipse生成了一个新的folderInfo部分时,这个选项是黑色/可以选择。
答案 1 :(得分:0)
今天这篇文章对我帮助很大,我想添加更多信息。 我浪费了 3 小时试图找出一个编译错误,该错误告诉我编译器找不到头文件。 我在 [右键单击项目]->C/C++ 常规-> 路径和符号-> 包含(对于 GNU C++)中添加了正确的包含文件夹。 编译器的预处理器仍然找不到头文件。
我完全按照@rose 的描述做了:我在 src 文件夹中创建了一个新文件,然后我意识到我必须将两个文件夹添加到包含路径 (-I) 中。我做的。 但是编译器一直失败。
在 .cproject 中有两个“folderInfo id”部分用于相同的“配置工件名称”
其中一个“folderInfo id”部分专门用于:
name="/" resourcePath="src"
然后我意识到,每当我更改“路径和符号”中的包含路径时,新的 folderInfo id 都不会改变。 最后我遇到了这篇文章,我完全按照它说的做了。我转到 src 文件夹,右键单击,“资源配置”,并启用“重置为默认值...”。我点击并重置为默认值。这是唯一启用了“重置为默认值...”的文件夹。 然后在 .cproject 中,不可修改的 folderInfo id 消失了,我能够在没有同样问题的情况下进行编译(我遇到了新错误 :) )
这里我要添加两个 folderInfo id 部分之间的差异。这是有变化的正确的:
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.debug.43054842" name="Debug" optionalBuildProperties="org.eclipse.cdt.docker.launcher.containerbuild.property.selectedvolumes=,org.eclipse.cdt.docker.launcher.containerbuild.property.volumes=" parent="cdt.managedbuild.config.gnu.exe.debug">
<folderInfo id="cdt.managedbuild.config.gnu.exe.debug.43054842." name="/" resourcePath="">
<toolChain id="cdt.managedbuild.toolchain.gnu.exe.debug.330192629" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.debug">
<targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.debug.85760128" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.debug"/>
<builder buildPath="${workspace_loc:/myprojUnitTest}/Debug" id="cdt.managedbuild.target.gnu.builder.exe.debug.719946717" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.exe.debug"/>
<tool id="cdt.managedbuild.tool.gnu.archiver.base.1032292713" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.1002854658" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug">
<option id="gnu.cpp.compiler.exe.debug.option.optimization.level.305235605" name="Optimization Level" superClass="gnu.cpp.compiler.exe.debug.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
<option defaultValue="gnu.cpp.compiler.debugging.level.max" id="gnu.cpp.compiler.exe.debug.option.debugging.level.702864614" name="Debug Level" superClass="gnu.cpp.compiler.exe.debug.option.debugging.level" useByScannerDiscovery="false" valueType="enumerated"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.include.paths.332186867" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value="/opt/googletest/googletest/include"/>
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/myproj/common}""/>
<listOptionValue builtIn="false" value=""${workspace_loc:/myprojUnitTest/myproj/connector}""/>
而这个是需要消失的:
<folderInfo id="cdt.managedbuild.config.gnu.exe.debug.43054842.1553324918" name="/" resourcePath="src">
<toolChain id="cdt.managedbuild.toolchain.gnu.exe.debug.645104237" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.debug" unusedChildren="">
<targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.debug" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.debug"/>
<tool id="cdt.managedbuild.tool.gnu.archiver.base.1301414938" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base.1032292713"/>
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.311086767" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.1002854658">
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.include.paths.168615906" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value="/opt/googletest/googletest/include"/>
<listOptionValue builtIn="false" value=""${workspace_loc:/myproj/pcap}""/>
<listOptionValue builtIn="false" value=""${workspace_loc:/myproj/common}""/>
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/myproj/skb}""/>
我在使用 Eclipse IDE for C/C++ 版本 4.14.0 的 Linux Ubuntu 中遇到了这个问题。这不是嵌入式系统。 我真的不知道这是否是 Eclipse 中的错误。似乎在 2018 年创建了一个错误,并且从未关闭:https://bugs.eclipse.org/bugs/show_bug.cgi?id=541268