小编Dan*_*iel的帖子

在GCC中编译而不生成输出文件

$ gcc -c somefile.c编译而不链接并生成相应的somefile.o.

是否可以在gcc不生成任何输出文件的情况下编译文件?

我知道还有其他方法可以实现这一点,但我很好奇是否有一个标志只是为了通过源代码寻找错误/警告.

c gcc compiler-errors compilation compiler-warnings

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

Android Studio中Android库与Java库的区别

在此输入图像描述

在Android Studio中创建新模块时,我们可以在Android库和Java库之间进行选择.通过修改两者,我的理解是可以Android Library访问Android资源,而Java Library只能访问Java资源.

因此,在Android Studio中创建Java库就像在普通的Java IDE(如Eclipse)中创建新库一样.(它甚至可以让我们访问RMI,Android不支持.)

这是否正确,是否应该注意其他任何差异?

java eclipse android android-library android-studio

7
推荐指数
1
解决办法
6388
查看次数

如何在Android SAF中刷新文件列表

SAF似乎不刷新文件列表.我在带有Android KitKat的三星Galaxy S4上进行了测试.

当我使用访问DownloadsSAF中的默认提供程序的应用程序时,我看到的文件已被删除.现在我有两个文件,我通过检查/sdcard/Download/adb和使用手机的My Files应用程序确认了这一点,但SAF显示了超过一百个文件的列表.结果是当我选择其中一个已经删除的文件时,应用程序告诉我该文件不存在(这当然是正确的).

还有其他人面临这个问题吗?刷新SAF显示的列表的任何解决方案?


更新:尝试使用Nexus 5和Android 5.1,同样的事情发生了.我相信我误解了Downloads提供者的目标.

Downloads供应商,可通过SAF,显示下载文件(通常在下载文件夹结束)的历史.如果我们转到下载目录并删除文件,这些文件将不会从Downloads提供程序中删除,因为它显示的是下载文件的历史记录,而不是目录中存在的实际文件列表.

在nautilus中通过复制/粘贴添加文件时,在ubuntu中安装手机后,该文件不会显示在Downloads提供程序中.

那么我们如何摆脱这段历史呢?有一个应用程序,等待它,下载.打开应用程序并删除那里的文件或像我一样清除所有文件,文件就会消失.

(Google驱动程序SAF提供程序正确地反映了您在其外部执行的操作,因此使用它进行测试.)

android storage-access-framework

7
推荐指数
0
解决办法
964
查看次数

Haskell 运行时统计数据中的负生产力

我正在使用一个用 Haskell 编码的程序+RTS -N3 -M9G -s -RTS,我传递给它是为了在执行结束时获取运行时统计信息。我偶尔会得到生产力为负的结果。此外,程序成功运行其任务,但 MUT 为零。

\n
    \n
  1. 生产力怎么会是负数呢?
  2. \n
  3. 如果程序成功完成,MUT 怎么可能为零?
  4. \n
\n
\n
3,904,320,026,552 bytes allocated in the heap\n4,110,237,505,912 bytes copied during GC\n   6,874,676,192 bytes maximum residency (706 sample(s))\n      16,352,288 bytes maximum slop\n            9369 MiB total memory in use (0 MB lost due to fragmentation)\n\n                                     Tot time (elapsed)  Avg pause  Max pause\n  Gen  0     2402028 colls, 987034 par   39844.808s  1005.947s     0.0004s    0.0150s\n  Gen  1       706 colls,   583 par   1165.131s  1730.422s …
Run Code Online (Sandbox Code Playgroud)

garbage-collection haskell tamarin-prover

7
推荐指数
1
解决办法
136
查看次数

可以备份Android的密钥库吗?

Android支持APK文件,应用程序数据等的云和本地备份.设备密钥库是否包含在备份中?

(我认为即使在root设备中也不能从硬件支持的密钥库中提取私钥,对没有硬件支持时使用的基于软件的版本不太确定.)

android android-keystore android-backup-service

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

Android 中具有多个 AIDL 接口的单一服务

如何从单个服务提供多个 AIDL 接口?场景如下:

                    |---Client_1
          |--AIDL1--|     ...
          |         |---Client_6
MyService |
          |         |---Client_4
          |--AIDL2--|     ...
                    |---Client_9
Run Code Online (Sandbox Code Playgroud)
  • 具有多个 AIDL 的单一服务;
  • 每个客户端可以访问任意数量的 AIDL 接口;
  • 为了更好地理解上图,一些客户端(例如 Client_1、Client_8)只使用一个接口,而其他客户端(例如 Client_4、Client_5、Client_6)同时访问 AIDL1 和 AIDL2。

我的想法是使用方法的意图public IBinder onBind(Intent intent)以某种方式找出客户端应用程序调用的类型以及该客户端感兴趣的 AIDL。这可能吗?

android android-intent android-service

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

带有 Java 泛型的 Android AIDL

Android AIDL 是否支持泛型?

例如,假设我有一个 class Result<T>,其中 T 可以是任何类型,包括原语(通过自动装箱)或其他自定义类,例如Car. 任何自定义类都Parcelable按照 Binder 的要求实现。

那么可能的 AIDL 方法签名将是

  • Result<Car> m1();
  • Result<Void> m2();
  • Result<Boolean> m3();

java generics android aidl

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

Java属性与Android SharedPreferences

目标似乎是相同的:存储键值对。彼此之间在概念上有区别吗?

java android properties sharedpreferences

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

面向Linux的英特尔SGX模拟器

根据本教程,当使用Visual Studio在Windows中进行开发时,可以在模拟器中开发和运行SGX应用程序。尽管有适用于Linux的SDK版本,但本教程没有提到Linux。

SGX模拟器是Intel专用于Windows的,还是Linux版本?

(注意:我知道OpenSGX的存在,我是在专门询问英特尔模拟器。)

intel sgx

3
推荐指数
1
解决办法
1477
查看次数

当树干/分支掩埋在子树中时,Subversion分支

我的任务是按照以下方式组织SVN存储库:

REPO_ROOT
  |-AAA
  |-BBB
  |-DDD
      |-D1
      |-D2
      |-software
          |-branches
          |-tags
          |-trunk
  |-YYY
  |-ZZZ
Run Code Online (Sandbox Code Playgroud)

我主要在工作^/DDD/software/trunk。现在,我想创建一个分支来进行一些错误修复^/DDD/software/branches/error-fixing

首先,我创建并提交了^/DDD/software/branches/error-fixing不存在的目录。然后,我使用以下命令创建了一个干线分支:$ svn copy svn+ssh://xxx@yyy.zzz/REPO_ROOT/DDD/software/trunk svn+ssh://xxx@yyy.zzz/REPO_ROOT/DDD/software/branches/error-fixing -m "Branching from trunk to error-fixing"

现在,我需要切换到正确的分支。我在里面trunk并使用命令,$ svn switch "^/DDD/software/branches/error-fixing" .但这失败了svn: E195012: Path '.' does not share common version control ancestry with the requested switch location.

如何切换到分支?(我第一次这样做是因为我做错了。)

svn branch

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

如何为C宏字符串化char缓冲区

我有一个LOG(fmt, ...)宏使用char buf[]as 时不起作用fmt.

下面的代码是代码的完整(实际上)工作示例.在some_function(),我试图以LOG()两种不同的方式使用,但只有第一种方法有效.

为了解决这个问题,我尝试过#define LOG_STR(x) #x以下方式:

  1. 为了字符串化是什么在接收#define LOG应用LOG_STR()format像这样:LOG_STR(format); 和

  2. 申请LOG_STR()直接到这种印刷:LOG(LOG_STR(fmt), 6).

这两种方法都不起作用,事实上我从中得到了段错误.

    #include <stdio.h>

    #define LOG(format, ...) do {                             \
                fprintf(stderr, "[LOG] " format " [%s]\n",    \
                        ##__VA_ARGS__, __func__);             \
            } while (0)

    static void some_function()
    {
        // This works
        LOG("This is a number: %d", 5);

        // This does not work
        const …
Run Code Online (Sandbox Code Playgroud)

c macros stringification c-preprocessor

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

OpenSSL中的常见难题

在OpenSSL中,一些函数需要使用const,但随后在其他方面需要我不要将const用于同一个变量.一个例子是当我创建一个新的BIGNUM我需要使用const然后释放它我不能有const.

有没有办法解决这个问题?什么是摆脱编译器警告的正确原因?


功能签名:

const BIGNUM *EC_KEY_get0_private_key(const EC_KEY *key);
void BN_free(BIGNUM *a);
Run Code Online (Sandbox Code Playgroud)

违规代码:

EC_KEY *ec_key = ...;
/*const*/ BIGNUM *bignum = NULL;
bignum = EC_KEY_get0_private_key(ec_key);
BN_free(bignum);
Run Code Online (Sandbox Code Playgroud)

编译器警告:

------------Without const in bignum------------:
warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  bignum = EC_KEY_get0_private_key(ec_key);
     ^

------------With const in bignum------------:
warning: passing argument 1 of ‘BN_free’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  BN_free(bignum);
          ^
In file included from /usr/include/openssl/asn1.h:74:0,
                 from /usr/include/openssl/objects.h:965,
                 from /usr/include/openssl/evp.h:94,
                 from ecdh.c:5:
/usr/include/openssl/bn.h:493:6: note: expected …
Run Code Online (Sandbox Code Playgroud)

c gcc openssl const

0
推荐指数
1
解决办法
272
查看次数