나는이 간단한 샘플이 있습니다`로 정의되지 않은 참조 GetMagicNumber '
MAIN.CPP :
을#include <iostream>
extern "C" int GetMagicNumber();
int main(void)
{
std::cout << "The magic number is: " << GetMagicNumber();
return 0;
}
functions.s :
.section .text
.global GetMagicNumber
GetMagicNumber:
movl $42, %eax
ret
및 경우 build.bat :
C:\Qt\Qt5.2.0\Tools\mingw48_32\bin\as functions.s -o functions.o
C:\Qt\Qt5.2.0\Tools\mingw48_32\bin\g++ functions.o main.cpp -o MagicNumber.exe
또는
C:\Qt\Qt5.2.0\Tools\mingw48_32\bin\gcc functions.s main.cpp -lstdc++ -o MagicNumber.exe
MinGW 4.8을 사용하여 컴파일하려고 할 때. 나는 얻는다 :
나는 약간 자습서를 읽고 나는 영상을보고 나는 아직도 나가 그릇되게하고 있다는 것을 알아낼 수 없다. 왜 정의되지 않은 참조 오류가 발생합니까? 나는 어디 어셈블러 파일, 다음 매크로를 사용
.section .text
.global _GetMagicNumber
_GetMagicNumber:
movl $42, %eax
ret
편집를 사용하면 코드를보다 멀티 플랫폼 만들려면 :
개체 파일의 순서가 중요합니다. – PlasmaHH
.o 및 .cpp의 순서가 변경되었지만 여전히 동일한 오류가 발생합니다. 내 목표는 내 코드에 NEON 및 SSE2 최적화 기능을 추가하는 것입니다. Visual Studio를 사용해 보았는데 작동합니다. 그런 다음 외부 어셈블리 파일을 Qt Creator에 추가하려고 시도했지만 링크 할 수 없었습니다. 그래서 나는 아주 간단한 것을 시도하고있다. 이 예제는 기본적으로이 비디오 자습서에서 비디오 자습서에서 수행하는 작업이며 작동합니다. http://www.youtube.com/watch?v=jR6BnVGpAe0&list=PLKK11Ligqiti8g3gWRtMjMgf1KoKDOvME – Zingam
아래 질문에 대한 답변이 있으니 마킹을 고려해보십시오. 그 중 하나는 투표 수 아래의 눈금을 클릭하여 '수락 됨'으로 표시됩니다. 이것은 어떤 대답이 가장 도움이되었는지 보여주고 답변 작성자 (그리고 당신에게!)에게 평판 포인트를 할당합니다. upvotes 및 답변 수락을 통해 좋은 질문과 답변을 식별하는 것은이 사이트의 아이디어의 일부입니다. – Jubobs