2010-11-07 3 views
1

En essayant de construire certains de mes plugins pour Linux en utilisant Cygwin (continuez à vider les machines virtuelles Linux, j'ai donc décidé d'essayer de configurer Cygwin car je n'aurais pas à déplacer tous mes SDKs et quoi non). Tout semblait correct sauf que j'ai eu l'erreur "gcc: erreur essayant d'exec 'cc1plus': Pas de tel fichier ou répertoire" alors j'ai installé g ++ 4.3 en plus de gcc 4.3. Une fois que je l'ai fait, je reçois des tonnes d'erreurs maintenant. Les principaux qui sont spammé sont ...Utilisation de Cygwin pour construire - Modèle avec C Linkage

erreur: Modèle avec C Lien erreur: Modèle avec spécialisation en C Lien

Ces sont spammé sur les fichiers du SDK que des milliers d'autres personnes utilisent pour compile, donc je sais que ce n'est pas un "c externe" mais je suppose qu'il me manque un paquet ou quelque chose. Dans Ubuntu, l'installation de build-essential résout n'importe lequel de ces problèmes, mais je ne suis pas d'accord avec Cygwin. Toute aide serait très appréciée.

Modifier

Voici un ampaste des erreurs exactes, il est crachant http://www.ampaste.net/m3d0a864f

Le premier de Sourcehook.h est parce que linux est apparemment pas défini dans Cygwin, mais le reste de le 'hl2sdk' m'a perdu.

+0

En réponse à votre question entre parenthèses: Utilisez le terminal MinTTY (il y a un paquet Cygwin pour cela); c'est beaucoup plus convivial que le Windows standard. Même dans le terminal Windows, cependant, vous pouvez obtenir un tampon de retour en arrière - cliquez sur l'icône de la fenêtre pour obtenir le menu, sélectionnez les propriétés, puis il y a un paramètre pour "taille de la mémoire tampon". Donnez-lui une très grande hauteur, et vous pourrez alors remonter aussi loin. –

+0

Qu'est-ce que vous essayez exactement de compiler qui jette toutes ces erreurs? Un exemple de code serait utile ici. –

+0

Merci, MinTTY est beaucoup mieux que le Cygwin standard. Voici une pâte de tous mes journaux, il s'agit essentiellement d'un petit plugin, mais cela se produit avec tout ce que j'essaie de compiler en utilisant ce SDK. J'ai déjà rencontré ces problèmes sur Ubuntu mais Build-essential l'a corrigé. Je suppose que certains paquets sont désactivés. http://www.ampaste.net/m3d0a864f –

Répondre

0

Je sais que vous avez dit qu'il n'y a pas ballants extern « C » ... Mais pourquoi serait-ce encore un problème donné la façon dont vous compilez avec gcc et non g ++ ??? (qui, en fait, traiter heureusement smsdk_ext.cpp comme C et NON fichier C++ ... Avec toutes les erreurs et la douleur qui viennent de le faire ...)


Souvent, vous verrez ces messages d'erreur lorsque les mauvais fichiers include sont marqués extern "C". (Ou pas correctement étiqueté comme le cas.)

Vos messages d'erreur indiquent également les fonctions de surcharge difficulté ...

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)' 

et des problèmes avec le système de fichiers (compilateur).

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 

Donc, soit l'installation du compilateur est vraiment munged OU ...


Alternativement, une autre approche est de commencer avec un minimum Bonjour programme mondial et voir si compilant. Puis accumulez, y compris ce dont vous avez besoin, jusqu'à ce que vous rencontriez un problème. Commencez par utiliser la ligne "g ++", copiez le fichier et rognez-le jusqu'à ce que le problème disparaisse. typedef qui est en conflit avec quelque chose dans un fichier système.)

0

@Mr.Ree: «Les fichiers sources C++ utilisent classiquement l'un des suffixes .C, .cc, .cpp, .CPP, .C++, .cp ou .cxx; les fichiers d'en-tête C++ utilisent souvent .hh, .hpp,. H, ou (pour le code de modèle partagé) .tcc; et les fichiers C++ pré-traités utilisent le suffixe .ii GCC reconnaît les fichiers avec ces noms et les compile en tant que programmes C++ même si vous appelez le compilateur de la même manière que pour compiler des programmes C (généralement avec le nom gcc). " GCC est synonyme de la collection de compilateurs GNU depuis un certain temps maintenant. http://linux.die.net/man/1/gcc

Questions connexes