我现在自己写了一个加法的汇编程序,然后使用C来调取,能够成功编译和运行,但是当我将这个代码放到一个比较大的C++工程里的时候,程序却一直报识别不到函数名的错误,请问该如何解决呢?
这里如果将main.c改成main.cpp,同时在extern 后面加上“C”就可以执行,但是我将汇编代码放在下面这样的一个工程里就不行了。
我的主函数为:
#include <stdlib.h> #include <stdio.h> #include <time.h> #include "TAppDecTop.h" extern "C" int asm_add(int a ,int b); bool g_md5_mismatch = false; ///< top level flag that indicates if there has been a decoding mismatch // ==================================================================================================================== // Main function // ==================================================================================================================== int main(int argc, char* argv[]) { int a=5; int b=4; int i=0; i=asm_add(a,b); printf("i:%d\n",i); return EXIT_SUCCESS; }
然后出现的 错误为:
undefined first referenced
symbol in file
--------- ----------------
asm_add ./TAppDecoder/decmain.obj
error #10234-D: unresolved symbols remain
error #10010: errors encountered during linking;
"Dm642Hevc2.out"
not built