问题标签 [weak-linking]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 获取被覆盖的弱符号的地址
我的问题假设 x86 或 x86_64 的 gcc 或 clang。
假设我有以下文件:
如果我只编译weak.c
:cc weak.c -o weak
然后运行它,我会收到“我很弱”的消息。反过来,如果我编译并链接两者:cc weak.c not_weak.c
我得到消息“我并不弱”。这是可以预料的。
我能以某种方式获得弱符号的地址吗?假设我想调用i_am_weak
from weak.c
from not_weak.c
,类似于我在使用链接器标志时使用__real_i_am_weak
from的方式。__wrap_i_am_weak
--wrap
visual-c++ - 在 Visual Studio 中编译时出现编译错误 C2048,但在 clang++ 中可以正常工作吗?
我尝试使用 clang 编译器编译以下示例代码,它工作正常。
- 编译器详细信息:Apple clang 版本 12.0.0 (clang-1200.0.32.28)
- 目标:x86_64-apple-darwin20.1.0
但是,当我尝试在 Visual Studio 2019 或 g++ 中编译时,会出现编译错误。
错误 C2084:函数 'int printf(const char *const ,...)' 已经有一个主体
- msvc编译失败的原因是什么?
- 我怎样才能让它工作,我错过了什么?
xcode - dyld:未找到符号:___darwin_check_fd_set_overflow
当我在 XCode 12.4 目标设备 iOS 13.3 中构建我的应用程序时,它会在启动时崩溃,并显示以下错误消息。但工作正常的目标设备模拟器。
dyld:找不到符号:___darwin_check_fd_set_overflow 引用自:/private/var/containers/Bundle/Application/EBA2D824-6239-4E6A-BD10-1A3F945AECA3/MyAPP.app/MyAPP 预期在:/usr/lib/libSystem.B.dylib 中/private/var/containers/Bundle/Application/EBA2D824-6239-4E6A-BD10-1A3F945AECA3/MyAPP.app/MyAPP dyld:启动,加载依赖库DYLD_LIBRARY_PATH=/usr/lib/system/introspection DYLD_INSERT_LIBRARIES=/Developer/usr/ lib/libBacktraceRecording.dylib:/Developer/usr/lib/libMainThreadChecker.dylib:/Developer/Library/PrivateFrameworks/DTDDISupport.framework/libViewDebuggerSupport.dylib:/Developer/Library/PrivateFrameworks/GPUTools.framework/libglInterpose.dylib:/usr/ lib/libMTLCapture.dylib
崩溃可以通过与 libSystem.B.dylib 的弱链接来解决,但我只是想知道为什么会发生这种情况。任何线索表示赞赏