我的工作区中有两个文件夹:
在 Eclipse 中打开我的项目foo后,我导航到项目中的 src 文件夹(或 inc 文件夹 - 这没有区别),然后从文件菜单中选择import,然后选择Existing Filesystem ,然后给出bar的路径,然后选择“在工作区中创建链接”选项。
(在该对话框中,这将自动检查两个子选项:“创建虚拟文件夹”和“创建相对于”PROJECT_LOC/WORKSPACE_LOC/等的链接位置。也许这是一个有争议的问题。)
现在,当然,我需要以某种方式将链接资源栏中的标头包含到我的项目foo中。
因此,我单击项目的属性。在“C/C++ 常规”下的“路径和符号” 选项卡中,我将路径(作为工作区路径)添加到“包含的目录”下的链接资源栏。
我尝试了“/bar”(这是工作区中实际存在bar 的位置),
或者,
“/${ProjName}/src/bar”(其中bar作为链接资源添加到项目中),
在这两种情况下,都无法找到链接资源中的头文件。
但是,如果我在该项目属性窗口中包含链接资源bar的绝对路径,例如/opt/workspace/bar,则可以找到头文件。
这似乎是 Eclipse 中的一个错误,如下链接。我找不到是否针对此问题实施过任何修复。
https://bugs.eclipse.org/bugs/show_bug.cgi?id=72940 https://bugs.eclipse.org/bugs/show_bug.cgi?id=122945
我想声明一个数组:int a [256] [256] [256]并且程序挂起.(我已经注释掉了所有其他代码...)当我尝试[256] [256]时,它运行正常.
我使用的是MingW C++编译器,Eclipse CDT.
我的代码是:int main(){int a [256] [256] [256]; 返回0; }
欢迎任何评论.
Eclipse SDK 3.5.1,CDT.我有以下工作区树:
Bin (just directory) --Debug --Release Client (project) --Debug --Release
在Client项目的Debug配置中,我填写了Post-Build步骤:
cp Debug/Client ../Bin/Debug/
我想将输出可执行文件复制到Bin/Debug目录.构建项目,我有这样的错误消息:make [1]:[post-bulld]错误1(忽略)第0行
怎么了?另外,我可以在Post-Build步骤中使用一些变量,如Workspace目录,当前配置等吗?我在哪里可以找到这些变量以及如何使用它们?谢谢.
我有以下代码(简化)
int main()
{
ifstream myFile("input.txt");
if(myFile.is_open())
cout<<"test";
}
Run Code Online (Sandbox Code Playgroud)
但是myFile.is_open()返回假;
为什么?
我正在使用eclipse并且input.txt文件位于带有.cpp文件的src文件夹中...
谢谢!
是否有任何快捷键可以在Eclipse CDT中切换.cc和.h?
我使用visual stdio,我可以使用alt + o在.cc和.h之间切换,
我可以在Eclipse CDT中完成吗?
非常感谢!
我创建了一个静态库,我将其包含在另一个C++ eclipse cdt项目中.一旦我相应地更改了构建设置,所有内容都会正确编译,但编辑器仍然无法识别静态库中声明的类型,标记了许多红色波浪形标记等.
有没有办法让eclipse编辑器在与编译器相同的位置进行搜索?至少可以说这是一个非常大的视觉滋扰.
我一直在Qt Creator用作一些C++项目(非QT)的IDE,我喜欢它.最近我一直在考虑Eclipse主要尝试学习一种新工具,以及我不是调试器模式的忠实粉丝Qt Creator!
无论如何,我想我可能会使用qmake生成的makefile,但是嘿,我们也要学习CMake!所以,我想知道是否有人可以指点我这方面的一些很好的教程(我自己没有多少运气)?具体来说,我希望能够CMakeList.txt直接在Eclipse中创建和维护文件并构建/运行项目......就像.pro在Qt Creator中编辑文件一样.
谢谢
我在Eclipse中有两个C共享库项目,它们被称为"MyLibA"和"MyLibB":
TestA.h
int Test1(void);
int Test2(void);
Run Code Online (Sandbox Code Playgroud)
TestA.c
#include "TestA.h"
int Test1(void) { return 1; }
int Test2(void) { return 2; }
Run Code Online (Sandbox Code Playgroud)
TestB.h
int Test(void);
Run Code Online (Sandbox Code Playgroud)
TestB.c
#include "TestB.h"
#include "TestA.h"
int Test(void) { return Test1() + Test2(); }
Run Code Online (Sandbox Code Playgroud)
"MyLibA"和"MyLibB"分别产生"libMyLibA.so"和"libMyLibB.so".
我还有一个C可执行项目"MyExe":
#include "TestB.h"
int main(void)
{
Test();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
MyExe的属性已设置,因此它知道在哪里可以找到"TestB.h"和"libMyLibB.so".它还链接到"MyLibB".
当我编译"MyExe"时,我收到以下错误和警告:
错误:
make: *** [MyExe] Error 1
recipe for target `MyExe' failed
Run Code Online (Sandbox Code Playgroud)
警告:
libMyLibA.so, needed by libMyLibB.so, not found (try using -rpath or -rpath-link)
Run Code Online (Sandbox Code Playgroud)
如果我修改MyExe的属性,它们就会消失并且MyExe构建文件,以便它知道在哪里找到"libMyLibA.so"并链接到它但这并不理想.
例如,如果您使用的依赖于许多其他.so文件的.so文件,则必须手动链接到它们.
有办法解决这个问题吗?
我正在阅读NeHe的第一个OpenGL编程指南,当它编写完成他的第一个教程的结果时,我很难找到错误.这是发生错误的整个源文件(在Eclipse CDT中创建,'opengl32''glaux''glug32''glu32'成功链接):
#include <windows.h>
#include <gl/gl.h>
#include <gl/glu.h>
#include <gl/glaux.h>
#define GLEW_STATIC
HGLRC hRC = NULL;
HDC hDC = NULL;
HWND hWnd = NULL;
HINSTANCE hInstance;
bool keys[256];
bool active = TRUE;
bool fullscreen = TRUE;
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
GLvoid ResizeGLScene(GLsizei width, GLsizei height)
{
if(height == 0) height = 1;
glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0f, (GLfloat) width / (GLfloat) height, 0.1f, 100.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
int InitGL()
{
glShadeModel(GL_SMOOTH);
glClearColor(0, 0, 0, 0);
glClearDepth(1); …Run Code Online (Sandbox Code Playgroud) 我在尝试在Windows中为STM32F4 Discovery板设置dev env时遇到问题.
我已经安装了所有必需的文件(用于ARM的GCC,Windows构建工具,Eclipse插件),并且在尝试启动OpenOCD调试时遇到此错误:
Missing mandatory configuration. Fill-in the 'Config options:' field in the Debugger tab.
Run Code Online (Sandbox Code Playgroud)
这是我尝试启动它时产生的错误(并构建成功消息):