gpt4 book ai didi

c - undefined reference '_method'

转载 作者:行者123 更新时间:2023-11-30 18:01:10 24 4
gpt4 key购买 nike

我相信我的编译器选项发生了一些非常奇怪的事情。当我编译class.c时,它编译时没有错误。但是,当我尝试创建 .dll 时,出现许多错误:

undefined reference to '_method' 

_method 是 class.c 中任意数量的方法

我用以下代码编译我的代码:

gcc -c -g -w -I/path to include dir/include -MMD -MP -MF .../class.o.d -o class.o class.c

我的链接语法如下:

gcc -Wl,--add-stdcall-alias -m32 -shared -o dist/libdt.dll class.o

举个例子, undefined reference 之一是对'_min_size'的 undefined reference ,但是在class.c中,它看起来像:

if(min_size){ dsize=min_size; }

class.c 中的 min_size 之前没有下划线。我确信这与我的编译/链接语法有关,但我只是没有看到它。任何帮助表示赞赏!谢谢!

PS:我正在使用 Netbeans 和 Cygwin。

最佳答案

_ 只是 Windows 上的 stdcall 调用约定所需的前缀,由编译器添加。

如果有 extern size_t min_size; ,您只声明了 min_size。即你已经告诉编译器某个地方会有一个 size_t min_size;定义的。您必须在某处实际定义该变量(例如,在您的 class.c 中,将 size_t min_size; 放在那里。)

关于c - undefined reference '_method',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9981431/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com