निम्न उदाहरण में, कार्यक्रम प्रिंट चाहिए "foo बुलाया": कार्यक्रम इस तरह संकलित किया गया है__attribute __ ((कन्स्ट्रक्टर) क्यों नहीं एक स्थिर पुस्तकालय में काम करता है?
// 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
ऐसा क्यों होता है?
डाउनवॉट्स क्यों? क्या कुछ गलत है? –
यकीन नहीं है (मैं नहीं था!) लेकिन शायद किसी ने आपके अपने प्रश्न का उत्तर देने के लिए अपवाद लिया? – DaveR
हम्म, मैं बस एक गैर-स्पष्ट समस्या के लिए साइट पर एक उपयोगी संदर्भ जोड़ना चाहता था। एफएक्यू इंगित करता है कि किसी के अपने प्रश्न का उत्तर देना एक अच्छी बात है (यह वास्तव में पहले खंड में है)। –