小编kan*_*nna的帖子

没有链接具有构造函数属性的gcc函数

我有一堆静态库,它们是相互依赖的.由于依赖性,我在为目标链接这些库时遇到了问题.作为一种解决方法,我从所有库中创建了一个归档文件.

其中一个静态库具有构造函数和析构函数,因此组合存档(使用nmobjdump检查存档)但是当我使用组合存档作为目标时,最终二进制文件不包含构造函数和析构函数.

我也尝试过--whole-archive但是这个选项对我来说似乎不起作用(二进制大小没有增加).

什么可能出错的想法.谢谢

attributes gcc constructor static-linking

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

如何强制Android应用程序使用32位或64位库

在具有64位ARM的Android设备上,将有两个版本的库,32位和64位,它们的性能可能会有所不同.我想知道是否有办法强制应用程序使用32位或64位库.

android android-testing

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

我可以使用 GIT_CONFIG 环境变量来为所有 git 命令使用配置文件吗

export GIT_CONFIG=<file>我一直在尝试在 shell 脚本中使用 git 配置文件。但未使用文件中的设置。我的目标是对所有后续 git 命令使用文件中的设置。

如果设置位于全局配置文件中,则正在使用它们。

从使用中GIT_TRACE=1我发现它GIT_CONFIG正在被取消设置。

git clone unset GIT_CONFIG

run-command.c:646       trace: run_command: unset GIT_CONFIG GIT_PREFIX; GIT_DIR=.git git clone --no-checkout --separate-git-dir \
Run Code Online (Sandbox Code Playgroud)

使用的 Git 版本:2.17.1

git bash git-config

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

如何在深色模式下发布 Gitbook

是否可以在深色模式下发布 Gitbook。Gitbook 提供了在用户设置中设置暗模式的选项。但我想为每个人默认设置黑暗模式。

gitbook

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

如何在编译时检测long double是否具有扩展精度

在少数系统中,double与long double相同.如何在编译时检测long double是否为扩展精度而不是double,并将其用于条件编译.

我看到libgcc SIZEOF_DOUBLESIZEOF_LONG_DOUBLE中存在预定义的宏 但是在不同的工具链中没有可移植的.

有C方法吗?

c compiler-construction gcc compilation conditional-compilation

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

使用64位或32位编译时的不同行为或sqrt

我正在使用数学库中的sqrt()函数,当我使用-m64构建64位时,我得到了正确的结果但是当我构建32位时,我的行为非常不一致.

例如在64位上

double dx = 0x1.fffffffffffffp+1023;
sqrt(dx); // => 0x1.fffffffffffffp+511
sqrt(0x1.fffffffffffffp+1023);// => 0x1.fffffffffffffp+511
Run Code Online (Sandbox Code Playgroud)

(我相信这是正确的舍入结果,用mpfr验证)

但是在32位相同的输入值上,它表现不同.

double dx = 0x1.fffffffffffffp+1023;
sqrt(dx); // => 0x1.0p+512
sqrt(0x1.fffffffffffffp+1023); // => 0x1.fffffffffffffp+511
Run Code Online (Sandbox Code Playgroud)

当在变量中传递相同的值时,我得到了错误的结果.我在每次调用之前和之后检查了舍入模式,并且所有都设置为舍入到最近.是什么原因?我在64位机器上使用gcc 4.6,-mfpmath=sse并且-march=pentium对于x86 和x64两种情况都有选项.

c math mpfr 32bit-64bit sqrt

6
推荐指数
2
解决办法
982
查看次数

多处理池不适用于嵌套函数

以下代码未按预期执行。

import multiprocessing

lock = multiprocessing.Lock()
def dummy():
    def log_results_l1(results):
        lock.acquire()
        print("Writing results", results)
        lock.release()

    def mp_execute_instance_l1(cmd):
        print(cmd)
        return cmd

    cmds = [x for x in range(10)]

    pool = multiprocessing.Pool(processes=8)

    for c in cmds:
        pool.apply_async(mp_execute_instance_l1, args=(c, ), callback=log_results_l1)

    pool.close()
    pool.join()
    print("done")


dummy()
Run Code Online (Sandbox Code Playgroud)

但是如果函数不是嵌套的,它确实有效。到底是怎么回事。

python python-2.7 python-multiprocessing process-pool

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

android shell 内容查询错误

我正在尝试使用content query命令获取系统设置。例如:

adb shell content query --uri content://settings/system --projection name:value --where "name='user_rotation'"
Run Code Online (Sandbox Code Playgroud)

返回以下错误

Error while accessing provider:settings
android.database.sqlite.SQLiteException: no such column: user_rotation (code 1): , while compiling: SELECT name, value F
ROM system WHERE (name=user_rotation)
        at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:181)
        at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:137)
        at android.content.ContentProviderProxy.query(ContentProviderNative.java:420)
        at com.android.commands.content.Content$QueryCommand.onExecute(Content.java:535)
        at com.android.commands.content.Content$Command.execute(Content.java:417)
        at com.android.commands.content.Content.main(Content.java:605)
        at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
        at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:251)
Run Code Online (Sandbox Code Playgroud)

虽然我可以得到所有条目,

adb shell content query --uri content://settings/system
Run Code Online (Sandbox Code Playgroud)

android adb

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