Bas*_*evs 8 c++ assembly linker gnu
我收到链接时间错误:
WARNING: /home/gulevich/development/camac-fedorov/camac/linux/k0607-lsi6/camac-k0607-lsi6.o (.ctors): unexpected non-allocatable section.
Did you forget to use "ax"/"aw" in a .S file?
Note that for example <linux/init.h> contains
section definitions for use in .S files.
Run Code Online (Sandbox Code Playgroud)
导致错误的代码(在C源代码中汇编):
# if defined(__ELF__)
# define __SECTION_FLAGS ", \"aw\" , @progbits"
/* writable flag needed for ld ".[cd]tors" sections bug workaround) */
# elif defined(__COFF__)
# define __SECTION_FLAGS ", \"dr\""
/* untested, may be writable flag needed */
# endif
asm
(
".section .ctors" __SECTION_FLAGS "\n"
".globl __ctors_begin__\n"
"__ctors_begin__:\n"
".previous\n"
);
Run Code Online (Sandbox Code Playgroud)
有没有什么办法解决这一问题?这个想法是__ctors_begin__在某个记忆部分的开头放置一个变量.此代码是使用不同的构建系统和较旧的编译器正常工作的遗留代码.
在上一个问题的答案中解释了这个汇编代码的含义.
| 归档时间: |
|
| 查看次数: |
643 次 |
| 最近记录: |