, 프로그램은 "foo는 소위"인쇄해야합니다 : 프로그램이 다음과 같이 컴파일__attribute __ ((constructor))가 정적 라이브러리에서 작동하지 않는 이유는 무엇입니까? 다음 예에서
// foo.c
#include <stdio.h>
__attribute__((constructor)) void foo()
{
printf("foo called\n");
}
// main.c
int main()
{
return 0;
}
경우, 작동 :
gcc -o test main.c foo.c
그러나, foo.c를가로 컴파일 된 경우 정적 라이브러리 인 경우, 프로그램은 아무것도 인쇄하지 않습니다.
gcc -c main.c
gcc -c foo.c
as rcs foo.a foo.o
gcc -o test foo.a main.o
왜 이런 일이 발생합니까?
왜 downvotes? 잘못된 것이 있습니까? –
잘 모르시겠습니까? (나 아니 었나요?)하지만 누군가가 당신의 질문에 너무 빨리 답하는 것을 예외로 생각했을까요? – DaveR
흠, 나는 단지 명백하지 않은 문제에 대한 유용한 참조를 사이트에 추가하기를 원했습니다. FAQ는 자신의 질문에 대답하는 것이 좋은 것이라고 지적합니다 (사실 첫 번째 섹션에 있습니다). –