我在 Linux 上使用 Eclipse CDT Mars 4.5.0 20150621-1200 来进行涉及 AVR 微控制器的固件项目。Eclipse 给我错误,如“无法解析类型‘uint8_t’”。
我正确添加/usr/lib/avr/include到项目属性 -> C/C++ 常规 -> 路径和符号 -> 包含。
当我尝试在 Eclipse 中打开声明时,uint8_t我得到以下结果:
这表明 Eclipse 检测到了 2 个声明,但无法确定哪一个是正确的。这对我来说很奇怪,因为/usr/include在“路径和符号”->“包含”下没有特色。
如何解决这种疼痛?谢谢!
我正在使用 Eclipse 4.6,在 Linux 中使用 C++ 项目。如果相关:编译是通过 CMake makefile 完成的。Gdb版本是8.0.1
当使用F3(打开声明)时,将打开一个带有类声明(例如友元类声明)的窗口,但不打开类定义(即class MyClass : public BaseClass ...)。
还发现所有参考文献都不起作用。
我有
使用项目->索引->重建
验证 C++ General/Patch 和 Symbols/Path 是否已正确定义
我正在尝试编译一个链接到 Eclipse C/C++ IDE 中的 FMOD 库的程序。我什至没有包含任何库的标头,我只将共享库添加到项目依赖项中,并且出现以下链接错误:
Building target: Adventum
Invoking: GCC C++ Linker
g++-8 -L"/home/jkmcameron/Workplace/git/Adventum/Adventum/libs/GLFW" -L"/home/jkmcameron/Workplace/git/Adventum/Adventum/libs/Python" -L"/home/jkmcameron/Workplace/git/Adventum/Adventum/libs/FMOD" -o "Adventum" ./src/adventum/graphics/Display.o ./src/adventum/Main.o ./src/adventum/ScriptLoader.o -lglfw3 -lpython3.8 -lfmodL -ldl -lpthread -lX11 -lvulkan
/usr/bin/ld: /home/jkmcameron/Workplace/git/Adventum/Adventum/libs/FMOD/libfmodL.so: .dynsym local symbol at index 2 (>= sh_info of 2)
/usr/bin/ld: /home/jkmcameron/Workplace/git/Adventum/Adventum/libs/FMOD/libfmodL.so: .dynsym local symbol at index 3 (>= sh_info of 2)
/usr/bin/ld: /home/jkmcameron/Workplace/git/Adventum/Adventum/libs/FMOD/libfmodL.so: .dynsym local symbol at index 4 (>= sh_info of 2)
Finished building target: Adventum
Run Code Online (Sandbox Code Playgroud)
查找并.dynsym local symbol at index ...没有给我带来任何线索,即使我将范围扩展到 FMOD 库之外并查找该错误,一般来说,我在谷歌上没有看到很多关于它的点击,就好像该错误是为不便而量身定制的我。这不应该是二进制文件的问题,因为我已经尝试了 …
我正在学习 Ultra96v2 板的“ Xilinx SoC 深度学习简介技术培训课程”课程,并达到了 5 号实验室。
我能够一直跟进,直到我应该在 SDK 中构建项目为止。它失败并告诉我这样的错误:
15:49:06 **** Incremental Build of configuration Debug for project mnist_file_io ****
make all
Building file: ../src/mnist_file_io.cc
Invoking: ARM v8 Linux g++ compiler
aarch64-linux-gnu-g++ -Wall -O0 -g3 -I/media/user/6b04b610-ff80-4702-a575-b0b1a78fbafb/training/AvnetTTC/DPU/U96AI_student_20200115/U96AI/2018_3/work/lab5/workspace/ExtraIncludes -I/usr/include -c -fmessage-length=0 -MT"src/mnist_file_io.o" --sysroot=YSROOT -MMD -MP -MF"src/mnist_file_io.d" -MT"src/mnist_file_io.o" -o "src/mnist_file_io.o" "../src/mnist_file_io.cc"
In file included from ../src/mnist_file_io.cc:9:0:
/tools/Xilinx/SDK/2018.3/gnu/aarch64/lin/aarch64-linux/aarch64-linux-gnu/include/c++/7.3.1/cmath:45:15: fatal error: math.h: No such file or directory
#include_next <math.h>
^~~~~~~~
compilation terminated.
src/subdir.mk:21: recipe for target 'src/mnist_file_io.o' failed
make: *** [src/mnist_file_io.o] Error …Run Code Online (Sandbox Code Playgroud) 我刚刚将我的Eclipse CDT从Galileo升级到Helios,似乎我无法在我的C++项目中创建一个链接到文件系统上的符号链接的新文件夹.我需要这个,因为我们的夜间构建系统保留了构建历史并更新了指向最新源的符号链接.它看起来像这样:
/project/monday
/project/tuesday
/project/wednesday
/project/thursday
/project/friday
/project/lastnight -> /project/tuesday
Run Code Online (Sandbox Code Playgroud)
使用Galileo,我可以使用"/ project/lastnight"中的"文件系统中的链接到文件夹"来创建文件夹.当我上午工作时,我只需选择文件夹并点击刷新,索引就会更新.然后,我可以从我的其他项目中使用此项目.
Helios有可能吗?还是有其他方式我应该这样做?
问候,迈克
编辑:我在linux上运行eclipse.
我有一个Eclipse CDT项目,配置为生成make文件.
我目前正在开发Windows,我的构建服务器正在运行Linux.
make文件在我的本地机器上很好地构建,但我有两个预先构建的外部依赖项:boost和ZeroMQ.这两个都有一个include目录,一个lib目录和一个相关的dll/so.
如何配置项目,以便生成的make文件可以具有在make make时解析的不同BOOST_HOME或ZMQ_HOME变量(而不是烘焙到make文件中).
我在Windows 7下使用Eclipse Juno for c/c ++.我创建了一个共享库项目和一个可执行项目.我已经通过以下方式在可执行项目中添加了共享库项目作为参考:
可执行项目的属性 - > C/C++常规 - >路径和符号 - >引用 - >检查共享库项目
所有这些在编译时都很有用,我可以在可执行项目中包含我的共享库项目的类,并使用它等.
但是,当我尝试在Eclipse中运行可执行项目时,我什么也得不到.没有错误,没有控制台输出.经过一些谷歌搜索后,我发现了类似的问题:
http://www.eclipse.org/forums/index.php/m/650331/
如上所述,显然将共享库项目添加到Eclipse中的可执行项目中,也不会在Eclipse内部运行时将dll文件添加到可执行(.exe)文件的PATH中.与Eclipse for Java类比:如果你有一个Java JAR项目A和另一个Java JAR项目B,通过在Eclipse中从B到A的引用,在Eclipse中运行项目A时,B的编译jar文件被添加到A的类路径中.我认为它与Eclipse的C/C++类似,但显然不是.
果然,如果我手动获取.exe文件和.dll文件,将它们放在同一个文件夹中并运行.exe,一切正常.此外,如果我将.dll文件复制到Eclipse的可执行项目的编译目录中,我可以从Eclipse运行可执行项目,这没关系.
我的问题是,当我告诉它运行可执行项目时,有没有办法让Eclipse将该共享库项目的dll文件添加到运行时?我在上面链接的帖子中讨论的解决方案是手动将shard库项目的编译目录添加到Eclipse的可执行项目的运行配置中,即将其添加到PATH变量.但我觉得这很麻烦且不可移植,如果Eclipse管理这两个项目,它应该能够将所有必要的内容传递给运行时.
我正在使用Eclipse(C编程),我已经提出了这个代码,但每次构建它时,我都会收到错误消息"未定义引用'WinMain @ 16'".我花了2个多小时试图解决这个问题,但我无法弄清楚我的错误在哪里.有人可以帮忙吗?
这是代码:
#include <stdio.h>
int main(void)
{
int input;
printf("Please enter an integer:\n");
scanf("%d",&input);
int temp = input;
while(input<=temp+10)
{
printf("%d ",input);
input++;
}
printf("\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我想通过Eclipse编译以下代码行,但在构建时我会得到错误,我无法理解..是否有任何人有解决方案来解决它.
#include <boost/test/unit_test.hpp>
#define BOOST_TEST_DYN_LINK
#define BOOST_AUTO_TEST_MAIN
#define BOOST_TEST_MODULE First_TestSuite
BOOST_AUTO_TEST_CASE( First_TEst )
{
BOOST_CHECK(2 == 2);
}
Run Code Online (Sandbox Code Playgroud)
错误
12:55:13****增量构建配置调试项目NewProject****信息:内部构建器用于构建g ++"-IC:\ boost_1_52_0\boost_1_52_0"-O0 -g3 -Wall -c -fmessage-长度= 0 -o "SRC\NewProject.o" "..\SRC\NewProject.cpp"克++ -o NewProject.exe "SRC\NewProject.o" SRC\NewProject.o:在功能
ZN10First_TEst11test_methodEv': C:\Users\sam\workspace1\NewProject\Debug/../src/NewProject.cpp:19: undefined reference to升压:: unit_test :: unit_test_log_t :: set_checkpoint(升压:: unit_test :: basic_cstring,无符号整型,升压:: unit_test :: basic_cstring)" C:\用户\ SAM \工作空间1\NewProject \调试/../的src/NewProject.cpp:19:未定义参考到boost::test_tools::tt_detail::check_impl(boost::test_tools::predicate_result const&, boost::unit_test::lazy_ostream const&, boost::unit_test::basic_cstring<char const>, unsigned int, boost::test_tools::tt_detail::tool_level, boost::test_tools::tt_detail::check_type, unsigned int, ...)' src\NewProject.o: In function_static_initialization_and_destruction_0 ':C:\用户\ SAM \工作空间1\NewProject \调试/../的src/NewProject.cpp:16:未定义参照boost::unit_test::ut_detail::auto_test_unit_registrar::auto_test_unit_registrar(boost::unit_test::test_case*, unsigned long)' src\NewProject.o: …
在从Eclipse Neon升级到Oxygen之后,我注意到在按住Ctrl键的同时单击定义我无法再浏览代码.索引器本身工作正常,我仍然可以通过按下F3或使用上下文菜单来跳转.
我正在使用带有C++的Eclipse CDT.
以下屏幕截图证明该功能已启用:
我错过了什么?