我相信我的編譯器選項非常奇怪。當我編譯class.c
它編譯沒有錯誤。然而,當我嘗試創建.dll
我得到很多的錯誤:未定義對'_method'的引用
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
給一個ex充足的,未定義的參考之一是undefined refence to '_min_size'
在class.c
,但是,它看起來像:
if(min_size){ dsize=min_size; }
有一個在class.c
的min_size
前沒有下劃線。我確信這與我的編譯/鏈接語法有關,但我只是沒有看到它。任何幫助表示讚賞!謝謝! PS:我使用的是Netbeans和Cygwin。
你是怎麼定義min_size的? – 2012-04-02 18:07:24
對不起,離開了。在一個包含的文件中:class.h。它的類型是size_t – redhotspike 2012-04-02 18:10:35
但是未定義的引用與include /頭文件無關。 – 2012-04-02 18:10:55