小编Leo*_*Leo的帖子

为模拟器和包含arm64的设备构建一个.a(也针对M1模拟器)可能吗?

当尝试为模拟器和设备构建胖静态库时,我们遇到了 lipo/libtool 的问题。在 M1 arm64 之前,设备的 armv7/arm64 切片和模拟器的 x86_64 切片都运行良好。现在 lipo 无法识别模拟器的 arm64 构建和设备的 arm64 构建之间的差异,并且拒绝添加 2 个 arm64 切片。

  1. 有没有办法构建“通用”arm64 lib 切片(因为我们 lib 中的代码与平台无关)

  2. 是否有其他工具可以实现将 2 个 arm64 切片打包到 .a 中,或者我们现在需要为模拟器和设备构建 2 个单独的静态库吗?(请注意,我们不使用 Xcode 进行构建,因此我们只是在命令行上进行链接)。

  3. 有趣的是,当链接动态标准库(例如 libxml)时,无论平台如何, -lxml 就足够了,但这适用于动态库,而不是静态库。静态库是否存在类似的机制?

objective-c clang ios lipo

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

如何在Qt5中启用不赞成使用的功能

我想将Qt4程序移植到Qt5,并且未定义某些功能(例如QHeaderView :: setMoveable),但是我在qheaderview.h文件中看到具有一些魔术定义(QT_DEPRECATED_SINCE),应该可以重新启用它们。为了让QHeaderView :: setMovable重新出现,我该怎么做?我不希望重写我的代码,如果有这样的一种方式。

c++ qt

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

Windows 上的 VC2019 地址清理器 64 位链接错误“无法解析的外部符号 __asan_shadow_memory_dynamic_address”

下面的简单程序

#include <malloc.h>
int main(int argc, char **argv)
{
    char* arr=malloc(10);
    arr[10]='\0';
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在 32 位动态链接中与 VC2019 16.8.2 构建良好

cl -Zi -fsanitize=address -MD clang_rt.asan_dynamic-i386.lib xx.c

并在运行程序时报告内存错误。但是,当使用 64 位变体时,我收到链接错误

> cl -Zi -fsanitize=address -MD clang_rt.asan_dynamic-x86_64.lib xx.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.28.29336 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

xx.c
Microsoft (R) Incremental Linker Version 14.28.29336.0
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:xx.exe
/debug
clang_rt.asan_dynamic-x86_64.lib
xx.obj
xx.obj : error LNK2019: unresolved external symbol __asan_shadow_memory_dynamic_address referenced …
Run Code Online (Sandbox Code Playgroud)

c qt visual-studio address-sanitizer cl

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

标签 统计

qt ×2

address-sanitizer ×1

c ×1

c++ ×1

cl ×1

clang ×1

ios ×1

lipo ×1

objective-c ×1

visual-studio ×1