我正在尝试在cygwin tutorial之后编译一个简单的dll。除了最后一步,我已经能够成功完成所有操作。当我执行命令时:
gcc -o myprog myprog.c -L./ -lmydll
我收到一条错误消息,指出未在该范围内声明
hello()
。我逐字阅读了本教程,但是我仍然无法编译该简单项目,并且对原因感到迷惑。各个文件的代码如下:
(myprog.c)
int main(void){
hello();
}
(mydll.c)
#include <stdio.h>
int hello(){
printf("Hello World!\n");
return 0;
}
最佳答案
该示例对我在Cygwin中的工作正常
armathew@3NJ2VQ1 /cygdrive/d/userdata/armathew/Desktop/WWWW
$ ls
mydll.c myprog.c
armathew@3NJ2VQ1 /cygdrive/d/userdata/armathew/Desktop/WWWW
$ gcc -c mydll.c
armathew@3NJ2VQ1 /cygdrive/d/userdata/armathew/Desktop/WWWW
$ gcc -shared -o mydll.dll mydll.o
armathew@3NJ2VQ1 /cygdrive/d/userdata/armathew/Desktop/WWWW
$ gcc -o myprog myprog.c -L./ -lmydll
armathew@3NJ2VQ1 /cygdrive/d/userdata/armathew/Desktop/WWWW
$ ./myprog.exe
Hello World!
您正在使用什么Cygwin版本?我的是1.7.5
armathew@3NJ2VQ1 /cygdrive/d/userdata/armathew/Desktop/WWWW
$ uname -r
1.7.5(0.225/5/3)