我一直在学习C ++和x64大会的最后一个星期,想获得与Qt的IDE GUI编程。 问题是,我无法找到一个方法来链接和编译包含汇编代码的文件。 我一直在浏览互联网与本网站没有发现任何有用的。
以下是我迄今为止尝试:的.pro
QMAKE_CXXFLAGS += -save-temps
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = test---
TEMPLATE = app
DEFINES += QT_DEPRECATED_WARNINGS
QMAKE_EXTRA_COMPILERS += nasm
SOURCES += main.cpp\
mainwindow.cpp\
asm.s
HEADERS += mainwindow.h
FORMS += mainwindow.ui
mainwindow.cpp
//code
extern "C" __int64 assembly();
//code
void MainWindow::on_pushButton_clicked()
{
int zahl = assembly(); // place what the assembly function return into "zahl"
}
asm.s
.code
.global
assembly proc
mov rax, 1
ret
xor rax, rax
assembly endp
end
构建设置IMG
试图编译项目导致以下错误信息:
mainwindow.obj:-1: Fehler: LNK2019: unresolved external symbol assembly referenced in function "private: void __cdecl MainWindow::on_pushButton_clicked(void)" (?on_pushButton_clicked@MainWindow@@AEAAXXZ)
我也发现了这样的设置指南控制台应用程序。 但它似乎并不适合GUI应用程序:HTTP://dvisagie.blogspot.de/2011/09/setting-up-qt-creator-for-assemblylinux.html
以下是我已经编译在Visual Studio中的汇编文件:的.cpp:
#include "stdafx.h"
#include<iostream>
using namespace std;
extern "C" __int64 _stdcall assembly();
int main()
{
cout << assembly() << endl;
system("pause");
return 0;
}
.ASM:.CODE组件PROC
mov rax, 1234
ret
xor rax, rax
assembly endp
end
编辑: 附加构建