小编bol*_*ing的帖子

如何获取Makefile的当前相对目录?

我在app特定目录中有几个Makefile,如下所示:

/project1/apps/app_typeA/Makefile
/project1/apps/app_typeB/Makefile
/project1/apps/app_typeC/Makefile
Run Code Online (Sandbox Code Playgroud)

每个Makefile在此路径中包含一个.inc文件:

/project1/apps/app_rules.inc
Run Code Online (Sandbox Code Playgroud)

在app_rules.inc里面我正在设置我希望在构建时放置二进制文件的目的地.我希望所有二进制文件都在各自的app_type路径中:

/project1/bin/app_typeA/
Run Code Online (Sandbox Code Playgroud)

我尝试过使用$(CURDIR),像这样:

OUTPUT_PATH = /project1/bin/$(CURDIR)
Run Code Online (Sandbox Code Playgroud)

但相反,我把二进制文件埋在整个路径名中,如下所示:( 注意冗余)

/project1/bin/projects/users/bob/project1/apps/app_typeA
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能获得执行的"当前目录",这样我才能知道app_typeX为了将二进制文件放在各自的类型文件夹中?

makefile working-directory gnu-make

183
推荐指数
7
解决办法
24万
查看次数

IntelliJ的"UML支持"插件

我肯定错过了什么.我正在阅读这篇文章,它说有一个名为"UML Support"的插件,默认情况下已启用.我没有它,所以我去了Preferences> Plugins并且看不到这样的插件.搜索也没有显示出来.

这个页面是前一个页面的一个子页面,我说我应该可以按下CMDShiftOptionU并且会出现一个图表.这不起作用,我也没有在项目中的文件的任何上下文菜单上看到Diagram> Show Diagram.

如何查看代码库的UML图?它看起来应该是直截了当但我在Intellij 14.1.4中没有看到任何这些

uml intellij-idea intellij-14

27
推荐指数
3
解决办法
3万
查看次数

使用通配符(*)将文件复制到bash脚本中的文件夹 - 为什么它不起作用?

我正在编写一个创建文件夹的bash脚本,并将文件复制到该文件夹​​.它可以从命令行运行,但不能从我的脚本运行.这有什么不对?

#! /bin/sh
DIR_NAME=files

ROOT=..
FOOD_DIR=food
FRUITS_DIR=fruits

rm -rf $DIR_NAME
mkdir $DIR_NAME
chmod 755 $DIR_NAME

cp $ROOT/$FOOD_DIR/"*" $DIR_NAME/
Run Code Online (Sandbox Code Playgroud)

我明白了:

cp: cannot stat `../food/fruits/*': No such file or directory
Run Code Online (Sandbox Code Playgroud)

linux bash scripting

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

在GCM onMessage事件期间检查应用是否已打开?

我想知道如何检查我的应用程序是否已打开,并且当onMessage()从GCM 接收时,用户当前可以看到该应用程序.起初,我只是使用自己的boolean isVisible,但后来我意识到这不可靠,因为如果应用程序没有打开,我用来访问该标志的对象是null.虽然这本身可以用来看看应用程序是否开放,但似乎有点混乱.Android中是否有一种方法可以从系统级别以某种方式检查应用程序当前是否已打开,以及用户是否正在查看应用程序?请记住,应用程序可以在技术上运行,但不可见,因为用户最近按下"主页"按钮将其发送到后台.

@Override
protected void onMessage(Context arg0, Intent arg1) {
    String turn = intent.getExtras().getString("turn");
    if (turn.equals("yours"){
         if (/*app is open*/){ <------------------ what can go here?
             // dont generate a notification
             // display something in the game instead
         }
         else{
             // generate notification telling player its their turn
         }
    }
}
Run Code Online (Sandbox Code Playgroud)

java android google-cloud-messaging

10
推荐指数
2
解决办法
7455
查看次数

Meld在OSX 10.10上有错误

我在OSX上通过Homebrew安装了Meld 3.14.0(本帖的当前版本).每当我启动它时,它都会给我这样的:

Couldn't bind the translation domain. Some translations won't work.
'module' object has no attribute 'bindtextdomain'
2015-08-13 10:35:55.007 Python[2396:32534] *** WARNING: Method userSpaceScaleFactor in class
NSView is deprecated on 10.7 and later. It should not be used in new applications. Use convertRectToBacking: instead.
Run Code Online (Sandbox Code Playgroud)

现在它仍然启动,似乎工作正常.我可以查看文件的差异,这是我最关心的.当我退出时,我从命令行获得Mac OSX对话框"Python Quit Unexpectedly"以及这个:

/usr/local/Cellar/git/2.4.6/libexec/git-core/mergetools/meld: line 1:  2396 Segmentation fault: 11  "$merge_tool_path" "$LOCAL" "$REMOTE"
Run Code Online (Sandbox Code Playgroud)

编辑我只有点击红色X关闭Meld才能获得段错误.如果我退出Python(当Meld打开时在Dock中显示的内容)通过cmd + Q它会干净地关闭.

我使用的Meld版本是最新的,所以我很惊讶我找不到更多关于这个问题的信息.我的Python版本是2.7.10.

其他人有这个问题吗?我担心,当我想实际进行合并并保存时,由于崩溃我无法做到.

python macos meld difftool osx-yosemite

8
推荐指数
1
解决办法
538
查看次数

一次将分支机构重新分支到一个分支

我经常在分支上有多个分支,而这些分支都希望基于主线。考虑一下:

* (Mainline)
*
*
| * (topicA_Branch3)
| *
| *
| * (topicA_Branch2)
| *
| *
| * (topicA_Branch1)
| *
| *
|/
*
*
Run Code Online (Sandbox Code Playgroud)

我想将所有这三个topicA分支移到主线上。目前,我知道执行此操作的两种方法:

  1. 开启后topicA_Branch3,执行命令git rebase Mainline

    一种。在这一点上,我将不得不删除topicA_Branch12手动重建现在rebased上正确提交的分支topicA_Branch3

  2. 另一种方法是执行三个单独的命令:

    一种。继续时topicA_Branch1,做git rebase Mainline

    b。 git rebase --onto topicABranch1 <topicA_Branch1-old-SHA> topicABranch2

    C。 git rebase --onto topicABranch2 <topicA_Branch2-old-SHA> topicABranch3

    d。这有点麻烦...

我是否需要一个命令来重新建立分支并为其带来子分支?

需要明确的是,我想结束于此:

* (topicA_Branch3)
*
*
* (topicA_Branch2)
*
*
* …
Run Code Online (Sandbox Code Playgroud)

git rebase

6
推荐指数
1
解决办法
686
查看次数

我怎么知道我的GCM消息是否足够小(<4kb)才能发送?(如何获取String的大小?)

我想直接在GCM(Google Cloud Message)中嵌入数据,以帮助我的应用程序跳过我的服务器往返.

谷歌称,总数据有效载荷需要达到4kb以内.使用[key,value]对发送数据.假设我做了这样的事情:

 String key = "key";
 String data = "data";
 Message message = new Message.Builder().addData(key, data).build();
 sender.send(message, regId, 5);
Run Code Online (Sandbox Code Playgroud)

我怎么知道它String data是否小于4kb?据我所知,没有办法真正做到String.getSize()或类似.

如果好奇,请链接到文档:http: //developer.android.com/training/cloudsync/gcm.html#embed

java string android google-cloud-messaging

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

Eclipse 会编译出未使用的局部变量吗?

考虑以下代码:

 public String foo(){
      String bar = doStuff();
      return bar;
 }
Run Code Online (Sandbox Code Playgroud)

然后后来:

 public void test(){
      doSomeLogicHere();
      String result = foo();
 }
Run Code Online (Sandbox Code Playgroud)

请注意,我在函数末尾test得到了一个命名的字符串。resultEclipse 知道这是一个未使用的变量,因为它会发出警告。我想知道的是,这些字符串是否会被编译出来,就像调用只是没有foo()保存返回的字符串一样?如果我在不使用它时注释掉String result =它,我会减少内存消耗还是没关系,因为字符串仍然会生成并返回foo()

我在这样编写的应用程序中有一些调试逻辑,我想知道在发布/不使用它们时注释掉所有字符串是否值得。

java eclipse

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

copy_to_user包含数组(指针)的结构

披露:我对C很新.如果你能详细解释任何答案,我将不胜感激.

我正在编写一个linux内核模块,在我写的一个函数中,我需要将一个结构复制到用户空间,如下所示:

typedef struct
{
    uint32_t  someProperty;
    uint32_t  numOfFruits;
    uint32_t  *arrayOfFruits;
} ObjectCapabilities;
Run Code Online (Sandbox Code Playgroud)

我正在实现的API具有将arrayOfFruits成员描述为" numOfFruits每个元素都是FRUIT_TYPE常量的大小数组"的文档.鉴于arrayOfFruits是一个指针,我很困惑如何做到这一点.当我copy_to_userObjectCapabilities结构,它只会将指针 复制arrayOfFruits到用户空间.

用户空间如何连续访问数组的元素?这是我的尝试:

ObjectCapabilities caps;
caps.someProperty = 1024;
caps.numOfFruits  = 3;
uint32_t localArray[] = {
        FRUIT_TYPE_APPLE,
        FRUIT_TYPE_ORANGE,
        FRUIT_TYPE_BANANA
};
caps.arrayOfFruits = localArray;
Run Code Online (Sandbox Code Playgroud)

然后复制......我可以这样做吗?

copy_to_user((void *)destination, &caps, (sizeof(caps) + (sizeof(localArray) / sizeof((localArray)[0]))));
Run Code Online (Sandbox Code Playgroud)

c linux arrays pointers memory-management

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

是什么导致"警告:条件表达式中的指针/整数类型不匹配"?

我有一个枚举,一个宏定义和一个所有使用枚举的方法.我无法编译.请考虑以下代码段.

typedef enum fruits_t
{
    APPLE,
    ORANGE,
    BANANA
} fruits_t;

#define KEY_TO_VALUE(x) ((x == APPLE) ? 0 :  \
                         (x == ORANGE) ? 1 :  \
                         (x == BANANA) ? 2 : \
                         "Undefined")

static void foo(char fruit) {
    if (fruit == KEY_TO_VALUE(APPLE)) {
        /* do something */
    }
}
Run Code Online (Sandbox Code Playgroud)

这编译,但我得到以下警告.

warning: pointer/integer type mismatch in conditional expression

warning: comparison between pointer and integer

为什么?我是C的新手,所以如果你能解释一些经验丰富的C开发人员看似显而易见的事情,我会很感激.我的大多数编程知识都是基于Java的.

c macros enums

4
推荐指数
1
解决办法
7003
查看次数