小编ysa*_*sap的帖子

如何在默认情况下将Eclipse配置为"在构建之前自动保存"?

我正在与Eclipse(Indigo)合作开发C项目.当我在新工作区中创建新的C项目时,默认情况下不会设置"构建前自动保存"选项.这非常令人沮丧,因为自动保存通常是我工作的其他IDE中的默认行为.我改变了一些代码,构建并且似乎没有按预期进行 - 直到我记得该选项未设置...

有没有办法让Eclipse打开一个带有此选项集的新工作区?

eclipse autosave eclipse-cdt

5
推荐指数
2
解决办法
4133
查看次数

在Ubuntu/VMware上测量C中的短时间间隔

我试图以几毫秒的顺序测量短时间间隔.这被证明是一项非常重要的任务,因为无处不在的time()功能在整个秒精度上起作用.经过一些研究,我得出了以下代码示例中的四种方法:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <sys/time.h>

int main(int argc, char *argv[])
{
    clock_t t0, t1;
    double dt0;

    struct timespec t2, t3;
    double dt1;

    struct timespec t4, t5;
    double dt2;

    struct timeval t6, t7;
    double dt3;

    volatile long long i;

    t2.tv_sec = 0;
    t2.tv_nsec = 0;
    clock_settime(CLOCK_MONOTONIC, &t2);
    clock_settime(CLOCK_REALTIME,  &t2);

    t0 = clock();
    clock_gettime(CLOCK_REALTIME,  &t2);
    clock_gettime(CLOCK_MONOTONIC, &t4);
    gettimeofday(&t6, NULL);

    getchar();
    for (i=0; i<1e9; i++) {};

    gettimeofday(&t7, NULL);
    clock_gettime(CLOCK_MONOTONIC, &t5);
    clock_gettime(CLOCK_REALTIME,  &t3);
    t1 = clock();

    dt0 = …
Run Code Online (Sandbox Code Playgroud)

c time measurement

5
推荐指数
1
解决办法
3842
查看次数

如何消除“丢弃限定符”警告?

使用 GCC 和 C99 模式,我有一个函数声明为:

void func(float *X);
Run Code Online (Sandbox Code Playgroud)

当我调用该函数时,我使用了一个可变数组 Y:

volatile float Y[2];
int main()
{
    func(Y);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

When compiling (with -Wall), I get the following warning:

warning: passing argument 1 of ‘func’ discards qualifiers from pointer target type
blah.c:4: note: expected ‘float *’ but argument is of type ‘volatile float *’
Run Code Online (Sandbox Code Playgroud)

I can eliminate it with an explicit (float *) type cast, but this repeats in many places in the code.

Is there a way to …

c gcc c99 suppress-warnings

5
推荐指数
1
解决办法
1万
查看次数

Eclipse CDT 中的“项目引用”和“路径和符号 -&gt; 引用”有什么区别?

打开项目的属性对话框时,我在C/C++ General -> Paths and Symbols -> References. 在其下方,有一个名为的条目,Project References其中包含一个类似的列表。

列表之间有什么区别?

eclipse eclipse-cdt project

5
推荐指数
1
解决办法
1045
查看次数

如何在更新窗口时防止Java图形程序窃取焦点?

在(嵌入式)Ubuntu 12.04系统上,我们有一个简单的Java程序,它在窗口上显示一些图形模式,每秒钟更新一次.我们用它来监控系统上运行的一些进程.问题在于,虽然它是活动的而不是最小化的,但只要窗口更新,它就会窃取焦点.这使得无法使用开放式终端窗口.

运行应用程序表单命令行或从Eclipse IDE时,行为是相同的.

在NetBeans IDE下运行时,Windows 7上不会出现同样的问题.

我们如何防止Java应用程序将重点放在Ubuntu机器上?


更新1:发现这个问题似乎很难解决同样的问题: 如何停止/解决Java应用程序窃取Linux窗口管理器的焦点.阅读它,我了解到问题是使用JFrame作为容器,这是我们使用的.他们的解决方案是使用JWindow容器而不是JFrame容器.然而,寻找差异,JWindow是"赤裸裸",并没有表现得像一个"真正的"窗口,因为没有装饰.有没有办法 JFrame中使用JWindow ,从而消除焦点窃取?


更新2:尝试在PC上的Ubuntu虚拟机上运行此程序会产生同样的错误行为.这表明Windows 7和Linux的Java运行时存在差异,并且该问题并非特定于嵌入式Linux.


更新3:这是一个SSCCE:

//package SSCCE;

import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;

public class MonitorSSCCE extends JFrame{

    public static void main(String[] args) 
    {
        // Set the frame
        JFrame ecoreFrame = new JFrame("SSCCE");
        ecoreFrame.setSize(120, 120);
        ecoreFrame.setVisible(true);

        // Refresh frame every 200 msec
        while (true) {
            GRFX grfx = new GRFX();
            ecoreFrame.add(grfx);
            ecoreFrame.setVisible(true);
            grfx = null;

            try {
                Thread.sleep(200);
            } catch (InterruptedException e) {

            }
        } …
Run Code Online (Sandbox Code Playgroud)

java swing focus focus-stealing ubuntu-12.04

5
推荐指数
1
解决办法
2591
查看次数

如何通过IAR IDE Watch窗口中的指针显示数组范围?

在IAR Embedded Workbench中,我有一个指针指向内存中的缓冲区.观看指针时,我可以看到它指向的单词的内容.如何判断Watch视图是否从指针开始列出了一定范围的缓冲区,用于指定长度的元素?

例如,输入表达式:

myPtr[0..2]
Run Code Online (Sandbox Code Playgroud)

将显示相当于三个表达式的信息:

myPtr[0]
myPtr[1]
myPtr[2]
Run Code Online (Sandbox Code Playgroud)

c embedded debugging watch iar

5
推荐指数
1
解决办法
2597
查看次数

为什么IAR编译器卡住了?

在我的嵌入式项目中,使用IAR EWARM开发工具(v7.10.3),我有以下代码:

/*  1 */   uint32_t packet_sync = 0;
/*  2 */   uint32_t synced      = 0;
/*  3 */   uint32_t gpio        = 0;

/*  4 */   while (1) {
/*  5 */     if ((packet_sync != 0) && ((packet_sync = gpio) == 0)) {
/*  6 */       if (synced < 2) {
/*  7 */         synced++;
/*  8 */       }
/*  9 */     }
/* 10 */   };
Run Code Online (Sandbox Code Playgroud)

出于某种原因,当我编译代码时,编译器会在编译过程中陷入困境.我尝试使用各种构造,似乎我做了任何微小的改变,消除了问题(但也可能使代码不正确).例如,在#6a中添加NOP,代码确实成功编译:

/*  6 */       if (synced < 2) { …
Run Code Online (Sandbox Code Playgroud)

c embedded compilation c99 iar

5
推荐指数
1
解决办法
1661
查看次数

如何确定是否在调用函数后接分号(“;”)?

在Matlab脚本中,我调用了用户定义的函数(m函数)。当使用disp和/或fprintf调用将值打印到命令窗口时,我的函数返回一个值。

在编写表达式或语句时,请;在其末尾禁止打印。当表达式调用我的函数时,;可以抑制返回值的打印。但是,这不会影响所disp调用函数中的输出。

我想在适当的时候消除函数的显示输出。有没有办法确定是否在以结尾的表达式中进行了函数调用;

matlab expression function

5
推荐指数
1
解决办法
603
查看次数

GNU Makefile“预处理器”?

是否有输出“预处理”makefile 的-E选项,相当于 GCC 的选项?

我有一个项目由几十个模块的层次结构组成,每个模块都有自己的 makefile。构建是从主生成文件调用的。该主 makefile 包含包含、变量定义、命令行选项因变量等。

所以,本质上,我正在寻找处理过的 makefile,包括所有替换。

preprocessor makefile gnu-make analyzer

5
推荐指数
1
解决办法
1156
查看次数

如何清理分支列表?

从远程克隆回购后,我在master分支上。键入git branch以查看分支列表时,仅master在列表中。

随着时间的流逝,检出现有分支并创建新分支,最终将新工作合并到master并推向origin。现在,键入将git branch显示包含数十个分支的长长列表。

如何缩小列表,从列表中删除特定分支,同时将其他分支保留在列表中?

更新1:为澄清起见,我不希望从存储库中删除任何分支(绝对不是从远程存储库中删除)。只是使在给定时间我经常使用的分支子集之间导航变得更加容易。

更新2:考虑-

$ git clone myrepo
$ git branch
        * master
$ git checkout mybranch
$ git branch
          master
        * mybranch
$ git checkout master
$ git branch
        * master
          mybranch
$ git "I'll not be dealing with mybranch for 91 days, do something to clean the list"
$ git branch
        * master

(playing DOOM for 91 days)

$ …
Run Code Online (Sandbox Code Playgroud)

git git-branch

5
推荐指数
1
解决办法
2112
查看次数