2013-04-26 4 views
4

이 코드를 GCC로 컴파일하려고하는데이 GCC 이해할 수있는 명령어로 변환하려고하는 #pragma 지시문이 있습니다. 밖으로 방법 :일부 코드를 GCC로 포팅하고 #pragma 지시문에 몇 가지 문제점이 있습니다.

#pragma section(".CRT$XCA", read, write) 
#pragma data_seg(".CRT$XCA")  // start of ctor section 
_PVFV __xc_a[] = {0}; 

#pragma section(".CRT$XCZ", read, write) 
#pragma data_seg(".CRT$XCZ")  // end of ctor section 
_PVFV __xc_z[] = {0}; 

#pragma data_seg() 
#pragma comment(linker, "/merge:.CRT=.rdata") 

나는 새 섹션을 만드는 당신이 data_seg에 대한 __attribute__ ((section (".CRT$XCZ")))하지만를 사용할 수 있다는 것을 알고?

답변

3

GCC는 전역 생성자를 등록하는 서로 다른 호환되지 않는 방법을 사용합니다. 이식하기보다는 GCC에서 사용하는 ABI에 맞게 다시 작성해야합니다.

자세한 내용은 다음 페이지를 참조하십시오. GCC 소스 트리에서 libgcc/crtstuff.clibgcc/gbl-ctors.h.

+0

나는 또한 이것을 발견했다 : http://www.avabodh.com/cxxin/nostdlib.html. 이제는 Windows 용인지 모른다. – ali

+1

@ali : Windows 용 GCC에서 확실하게 작동하는 것을 원한다면 [MinGW-w64 참조] (http://mingw-w64.svn.sourceforge.net/)를 참조하십시오. viewvc/mingw-w64/trunk/mingw-w64-crt/crt/gccmain.c). – Fanael

+0

그 링크에 대해 감사드립니다. – ali

관련 문제