gpt4 book ai didi

c++ - 使用 Cygwin 构建 - Template with C Linkage

转载 作者:太空宇宙 更新时间:2023-11-04 14:25:43 25 4
gpt4 key购买 nike

我正在尝试使用 Cygwin 为 Linux 构建我的一些插件(不断搞砸 Linux 虚拟机,所以我决定尝试设置 Cygwin,因为我不必移动我所有的 SDK 等等)。一切似乎都很好,除了我收到错误“gcc:尝试执行'cc1plus'时出错:没有这样的文件或目录”所以我在gcc 4.3之上安装了g++ 4.3。一旦我这样做了,我现在就会遇到很多错误。被垃圾邮件发送的主要是...

错误:带有 C 链接的模板错误:使用 C 链接专门化的模板

这些垃圾邮件来自 SDK 中的文件,成千上万的其他人使用这些文件进行编译,所以我知道它不是“悬垂的 c extern”,但我假设我丢失了一个包或其他东西。在 Ubuntu 中,安装 build-essential 可以解决所有这些问题,但我对 Cygwin 不知所措。任何帮助将不胜感激。

编辑

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

Sourcehook.h 中的第一个是因为 linux 显然没有在 Cygwin 中定义,但是 'hl2sdk' 中的其余部分让我不知所措。

最佳答案

我知道您说过没有悬空的extern "C"...但是考虑到您如何使用gcc 进行编译,为什么这甚至会成为一个问题不是 g++???(事实上,它会愉快地将 smsdk_ext.cpp 视为 C 而不是 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

所以要么你的编译器安装真的被修改了要么......


或者,另一种方法是从一个最小的 Hello World 程序开始,看看它是否可以编译。然后建立起来,包括你需要做的,直到你遇到问题。 (或者使用现有的软件并将其简化,直到找到问题区域。从一个 "g++" 行开始,复制文件,然后削减它,直到问题消失。也许你有一个#definetypedef 与系统文件中的某些内容冲突。)

关于c++ - 使用 Cygwin 构建 - Template with C Linkage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4115930/

25 4 0