C++ 调用VxGUI构造函数时出现L6218E错误
我试图在VeriFone sdk中使用Vrxcc编译器进行编译。 当我想为Vx675创建图形应用程序时,编译器会显示此错误 错误:L6218E:未定义的符号VxGUI::VxGUI()(从Main.o引用) Main.cpp是C++ 调用VxGUI构造函数时出现L6218E错误,c++,verifone,C++,Verifone,我试图在VeriFone sdk中使用Vrxcc编译器进行编译。 当我想为Vx675创建图形应用程序时,编译器会显示此错误 错误:L6218E:未定义的符号VxGUI::VxGUI()(从Main.o引用) Main.cpp是 #include <stdio.h> #include <svc.h> #include <svc_gui.h> void main() { VxGUI *m_GUIObj; m_GUIObj = new VxGUI(
#include <stdio.h>
#include <svc.h>
#include <svc_gui.h>
void main()
{
VxGUI *m_GUIObj;
m_GUIObj = new VxGUI();
}
请帮助我解决此问题。是否已解决上述问题? 如果不是,请注意,当使用LIVXGUI时,必须使用C++语法并生成.vSO文件而不是.out bin文件。 在CC和Link选项中插入-vsoapp选项,输出必须是.vso文件 copions=-g-b-p-vsoapp-map-armcc,“--diag\u suppress 1300\,611\,9,--apcs=/fpic--export\u all\u vtbl”-DLOGSYS\u FLAG-DLOGSYS\u NEW\u API\u样式 LOptions=-g-p-vsoapp-b-k-map $(VRXSDK)/bin/vrxcc$(开发)$(对象)$(Libs)-o$@ $(VRXSDK)/bin/vrxhdr-s$(堆栈大小)-h$(堆大小)-lnet.lib=N:/net.lib-lceif.lib=N:/ceif.lib-lssl.lib=N:/ssl.lib-lelog.lib=N:/elog.lib$(OutDir)/$(OutFile) $(ObjDir)/%.o:$(SrcFiles)/%.c $(VRXSDK)/bin/vrxcc-c$(选项)$(包括)$<-o$@ $(ObjDir)/%.o:$(SrcFiles)/%.cpp $(VRXSDK)/bin/vrxcc-c$(选项)$(包括)$<-o$@ 我成功地使用了VxGUI并将其包括在QT对象中。 如果你有更多的问题,让我知道。我可以发送一个工作项目给你 致以最良好的祝愿,
Leandro您是否在
main.cpp
中包含classvxgui
所需的标题?我想是的。它的代码在verifone样本中。和include#include#include#你能分享你的makefile中的相关行吗?当然,我在你想的时候编辑了我的问题。这个错误是链接器错误,所以它肯定不会与标题相关。汇编阶段是成功的。您可能需要修改库列表。我会从`$(GUISDKLibraries)\libvxguisdk.行中删除尾随的反斜杠\所以\`看起来很糟糕。只是一个附加注释。二进制名称是.vsaHi@Leandro谢谢你的回复,我按照你提到的那样制作了smk文件,并对你的copions和LOptions进行了宽度调整。但编译后将生成Main.O,但在链接器中显示错误。错误为“error MSB3073:命令NMAKE/i/f MakeFile.smk/a已退出,代码为-1”。如果您能给我一个带有vxguilib的简单项目,我将不胜感激。我的电子邮件是ahmdvnd@gmail.com谢谢你好,我也遇到了同样的麻烦。你能给我发送那个工作项目来了解我的问题在哪里吗。贝尼亚_k@yahoo.com. 非常感谢。
#
################### Paths ##################
#
ACTIncludes = $(EVOACT)include
EOSIncludes = $(EOSSDK)\include
GUIIncludes = $(GUISDK)\Include
CardslotInclude=$(VCARDSLOT)\Include
DTKTOOLS=C:\eVoAps\Tools
################### App Source Paths ##################
SrcDir = .
################### Compiler/Linker/Outhdr Output Paths ##################
ObjDir = .\vobj
OutDir = .\vbin
###################for release...##################
ACTStaticLibraries = $(EVOACT)\Output\RV\Files\Static\Release
ACTSharedLibraries = $(EVOACT)\OutPut\RV\Files\Shlib1\Release
VMACLibraries = $(EVOVMAC)\Output\RV\Lib\Files\Debug
EOSLibararuies = $(EOSSDK)\lib
GUISDKLibraries= $(GUISDK)\lib
VRXSDKLobraries= $(EVOSDK)\lib
VCARDSLOTLobraries= $(VCARDSLOT)\Output\RV\Files\Static
#
######################### Options for Tools ########################
#
############# Compiler Options ############
Includes = -I$(ACTIncludes) -I$(EOSIncludes) -I$(GUIIncludes) -I$(CardslotInclude)
# for release version change the COptions to
#COptions = -DLOGSYS_FLAG -DVERIFONE
COptions = -D_VERIFONE -DVERIFONE -DEVO -p -W -D ARM -D _ARM -g -D _MAKE_VX_
VRXHDRPARAM= -s 300000 -h 4000000
#
######################### Dependencies ########################
#
AppObjects = $(ObjDir)\Main.o
#Using ACT static library.
ACTLibs = \
$(ACTStaticLibraries)\act2000.a \
$(EOSLibararuies)\CEIF.o \
$(EOSLibararuies)\svc_net.o \
$(EOSLibararuies)\elog.o \
$(GUISDKLibraries)\libvxguisdk.so
#
######################### sample Target Definition ########################
#
pseudoOut : $(OutDir)\Hello.out
$(EVOSDK)\bin\vrxhdr $(VRXHDRPARAM) -l ceif.lib=N:/ceif.lib -l net.lib=N:/net.lib -l elog.lib=N:/elog.lib $(OutDir)\Hello.out
$(OutDir)\Hello.out : $(AppObjects)
$(EVOSDK)\bin\vrxcc -map -p $(AppObjects) $(ACTLibs) -o Hello.out
move Hello.out $(OutDir)
del /F /Q $(ObjDir)\*.o
######################## Compile #########################
$(ObjDir)\Main.o : $(SrcDir)\Main.cpp
$(EVOSDK)\bin\vrxcc -c $(Includes) $(COptions) $(SrcDir)\Main.cpp -e"-" | "$(DTKTOOLS)\fmterrorARM.exe"
move Main.o $(ObjDir)\Main.o