我在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为了将二进制文件放在各自的类型文件夹中?
我正在编写一个创建文件夹的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) 我想知道如何检查我的应用程序是否已打开,并且当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) 我在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.
其他人有这个问题吗?我担心,当我想实际进行合并并保存时,由于崩溃我无法做到.
我经常在分支上有多个分支,而这些分支都希望基于主线。考虑一下:
* (Mainline)
*
*
| * (topicA_Branch3)
| *
| *
| * (topicA_Branch2)
| *
| *
| * (topicA_Branch1)
| *
| *
|/
*
*
Run Code Online (Sandbox Code Playgroud)
我想将所有这三个topicA分支移到主线上。目前,我知道执行此操作的两种方法:
开启后topicA_Branch3,执行命令git rebase Mainline。
一种。在这一点上,我将不得不删除topicA_Branch1并2手动重建现在rebased上正确提交的分支topicA_Branch3。
另一种方法是执行三个单独的命令:
一种。继续时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) 我想直接在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
考虑以下代码:
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()?
我在这样编写的应用程序中有一些调试逻辑,我想知道在发布/不使用它们时注释掉所有字符串是否值得。
披露:我对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_user的ObjectCapabilities结构,它只会将指针 复制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) 我有一个枚举,一个宏定义和一个所有使用枚举的方法.我无法编译.请考虑以下代码段.
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的.