use*_*567 3 c c++ eclipse gcc g++
我对使用gcc和g ++工具的混合C / C ++应用程序比较陌生。为了获得帮助,我下载了iperf源代码并使用Eclipse成功构建了它。
有一个奇怪的地方:如果我使用Eclipse查看文件“ Thread.c”,它会认为存在语法错误,并且几乎在整个文件下划线,就好像代码有缺陷,这绝对不是。
这是触发它的代码:
#ifdef __cplusplus
extern "C"
{
#endif
Run Code Online (Sandbox Code Playgroud)
我知道C ++中使用的extern“ C”是什么,但是Eclipse在.c文件中存在问题。它很高兴在.cpp和.h文件中接受它。
我已经检查了Make实用程序如何构建iperf应用程序,并且看到它总是使用gcc编译c文件,使用g ++编译cpp文件,这使我想知道是否实际需要extern“ C”。它绝对不会造成伤害,因为gcc编译器会愉快地处理它,但是如果不是严格要求,我可以省略它并在Eclipse中获得更好的可读性。
我还研究了一种针对Eclipse行为的可能解决方案,但还没有真正找到一个解决方案,如果有人可以指出如何解决这一问题同样好。
如果使用的是Eclipse,则在编辑器中看到的内容与Eclipse内部索引器/解析器有关。您的混合C / C ++项目可能会毫无问题地进行编译和生成,但是当您打开包含以下内容的源文件时:
#ifdef __cplusplus
extern "C" {
#endif
Run Code Online (Sandbox Code Playgroud)
您可能会在extern“ C”行上看到语法错误。这意味着在项目设置中为C编译器定义了“ __cplusplus”符号。
为了摆脱Eclipse编辑器中的语法错误,请转到项目“属性”->“ C / C ++常规”->“路径和符号”->“#符号”选项卡,然后在下面选择“ GNU C”(或使用的任何C编译器) “语言”列。滚动右侧的符号/值列表,找到“ __cplusplus”符号并将其删除。确保仅对 C编译器执行此操作。
单击“确定”关闭项目“属性”窗口,语法错误警告将在Eclipse编辑器中消失。
归档时间: |
|
查看次数: |
1960 次 |
最近记录: |