2010-11-07 69 views
1

我试着使用Cygwin建立一些我的插件为Linux(保持搞砸了Linux虚拟机,所以我决定尝试建立Cygwin的,因为我也不会动我的所有的软件开发工具包什么不)。一切似乎都还好,除了我得到了错误“GCC:错误尝试执行“cc1plus:没有这样的文件或目录”,所以我对GCC 4.3上安装了G ++ 4.3。一旦我这样做了,我现在正在接受大量的错误。正在垃圾邮件主要的有...使用Cygwin建立 - C链接模板

错误:模板与C链接 错误:模板专业化与C链接

这些被垃圾邮件上的文件从成千上万的用户使用的SDK编译,所以我知道这是不是一个“晃来晃去ç的extern”但我假设我缺少一个包什么的。在Ubuntu中,安装build-essential可以修复所有这些问题,但是我对Cygwin很感兴趣。任何帮助将非常感激。

编辑

这里是确切的错误的ampaste它喷涌http://www.ampaste.net/m3d0a864f

从Sourcehook.h第一个是因为Linux的显然不是在Cygwin中定义的,而是从休息'hl2sdk'让我不知所措。

+0

回答你的括号问题:使用MinTTY终端(它有一个Cygwin软件包);它比标准的Windows更友好。但是,即使在Windows终端中,您也可以获得一个回滚缓冲区 - 单击窗口图标以获取菜单,选择属性,然后在那里设置“屏幕缓冲区大小”。给出一个非常大的高度,然后你可以向上滚动。 – 2010-11-07 01:39:50

+0

你究竟在编译什么,会抛出所有这些错误?一些示例代码在这里很有用。 – 2010-11-07 01:41:17

+0

谢谢,MinTTY比标准Cygwin好得多。这里是我所有日志的粘贴,它基本上只是一个小插件,但这发生在我尝试使用此SDK进行编译的任何事情上。我之前在Ubuntu上遇到过这些问题,但构建 - 必要的修复了它。我假设一些包已关闭。 http://www.ampaste.net/m3d0a864f – 2010-11-07 02:25:55

回答

0

我知道你说有没有悬挂的extern“C” ...但是,为什么,即使是一个问题给你如何GCC编译而不是克++ ???(这将在事实上,愉快地对待smsdk_ext.cppç和NOT C++文件......与所有的都这样做的错误和痛苦...)


你经常会看到这样的错误消息时错误包括文件的标签的extern“C”。 (或不正确标记视情况而定。)

你的错误信息也表明难度重载函数...

platform.h: In function ‘double fsel(double, double, double)’: 
platform.h:470: error: declaration of C function 'double fsel(double, double, double)' 
conflicts with 
platform.h:466: error: previous declaration 'float fsel(float, float, float)' 

和问题与系统(编译器)文件。

In file included from /usr/include/sys/signal.h:104, 
      from /usr/include/signal.h:5, 
      from /usr/include/pthread.h:15, 
      from /cygdrive/... 
/usr/include/cygwin/signal.h:74: error: expected ‘;’ before ‘*’ token 
/usr/include/cygwin/signal.h:97: error: ‘uid_t’ does not name a type 

In file included from /usr/include/signal.h:5, 
      from /usr/include/pthread.h:15, 
      from /cygdrive/... 
/usr/include/sys/signal.h:163: error: ‘pthread_t’ was not declared in this scope 
/usr/include/sys/signal.h:163: error: expected primary-expression before ‘int’ 
/usr/include/sys/signal.h:163: error: initializer expression list treated as compound expression 

因此,无论你的编译器的安装实在是被改写的OR ...


或者,另一种方法是先从最小的Hello World程序,看看是否有编译。然后建立起来,包括你需要的东西,直到你遇到问题。 (或者利用现有的软件和简化它,直到找到问题区域。先从一个“G ++”线,复制文件,并削减了下去,直到问题消失。也许你有一个的#define的typedef与在系统文件中一些冲突。)

0

@Mr。Ree:“C++源文件通常使用后缀之一.C,.cc,.cpp,.CPP,.C++,.cp或.cxx; C++头文件通常使用.hh,.hpp,。 H或(对于共享模板代码).tcc;以及预处理的C++文件使用后缀.ii。GCC可以识别具有这些名称的文件,并将它们编译为C++程序,即使您调用编译器的方式与编译C程序(通常名称为gcc)。“ GCC代表GNU编译器集合已经有一段时间了。 http://linux.die.net/man/1/gcc