我在这里有一些代码可以调用minizip(),它是minizip程序的重命名为main()的样板文件,但是当我编译时,我得到的是对`minizip(int,char **)的未定义引用。这是代码。
int minizip(int argc, char* argv[]);
void zipFiles(void)
{
char arg0[] = "BBG";
char arg1[] = "-0";
char arg2[] = "out.zip";
char arg3[] = "server.cs";
char* argv[] = {&arg0[0], &arg1[0], &arg2[0], &arg3[0], 0};
int argc = (int)(sizeof(argv) / sizeof(argv[0])) - 1;
minizip(argc, argv);
}
int minizip(argc,argv)
int argc;
char *argv[];
{
...
}
最佳答案
所有这些代码都在同一个文件中吗?如果不是,并且调用方是C ++代码且minizip
是C代码,则调用方可能需要在minizip
块内使用extern "C"
声明以表明它将调用C函数,因此需要C链接。
(此外,请勿重新输入错误消息。将其复制并粘贴以使其准确无误。在这种情况下,编译器很可能报告了对minizip(int, char**)
的未定义引用。)