我正在尝试编译一个库,但是不断出现这些错误。不太好 熟悉C,不知道如何解决。它不会创建dll。
c:\>C:\tcc\tcc.exe C:\tcc\examples\hello_dll.c -o C:\tcc\examples\test_win.dll
tcc: error: undefined symbol 'hello_data'
tcc: error: undefined symbol 'hello_func'
//+---------------------------------------------------------------------------
//
// HELLO_DLL.C - Windows DLL example - main application part
//
#include <windows.h>
void hello_func (void);
__declspec(dllimport) extern const char *hello_data;
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
hello_data = "Hello World!";
hello_func();
return 0;
}
答案 0 :(得分:0)
两个错误:
extern
,这意味着该变量未在此程序模块中定义,因此需要来自其他地方,同时来自其他地方。();
结尾的定义时,这意味着这是一个原型,用于告诉编译器期望的内容,而不是函数的实际代码。我建议一开始,您打算启动一个控制台类型的应用程序,例如臭名昭著的hello世界,例如:
#include <stdio.h>
int main()
{
printf("Hello William\n");
}
它将被编译并在MS Windows下的cmd窗口中运行。完成这项工作后,您可以考虑使用Windows环境和DLL中的WinMain之类的工具来做一些更奇妙的事情。