2010-08-20 6 views
3

J'ai essayé d'écrire mon premier programme Boost à partir d'informations sur le site des bibliothèques Boost. Voici le code:Premier programme Boost

#include <boost/lambda/lambda.hpp> 

#include <iostream> 
#include <iterator> 
#include <algorithm> 

int main() 
{ 
    using namespace boost::lambda; 
    typedef std::istream_iterator<int> in; 

    std::for_each(
     in(std::cin), in(), std::cout << (_1 * 3) << " "); 
} 

Il me montre cette erreur:

1>------ Build started: Project: boost_librarys, Configuration: Debug Win32 ------ 
1> boost_librarys.cpp 
1>LINK : fatal error LNK1104: cannot open file 'kernel32.lib' 
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 

Comment cette erreur fixée?

+6

La bibliothèque kernel32 appartient à Windows et n'a rien à voir avec Boost. – Philipp

Répondre

1

L'erreur de liaison que vous recevez signifie que votre programme ne crée pas de liens avec les bibliothèques correctes. Puisque l'erreur fait référence à une bibliothèque système Microsoft (kernel.lib), vous devez vous assurer que votre système est correctement configuré. Ce n'est pas un problème de Boost en soi, bien que Boost puisse être intéressé par un lien avec kernel.lib.

+2

En fait, kernel32.lib est sur la liste des bibliothèques par défaut car il est utilisé par la bibliothèque standard de Visual Studio (MSVCRT) – MSalters

+0

@ MSalters: Donc ce n'est pas un problème Boost _per se_ et l'affiche d'origine doit vérifier que son système est correctement configuré. –

+1

Ma déclaration était et est-ce est _provably not_ un problème Boost. "Pas _per se_ un problème de Boost" maintient la possibilité ouverte qui est. – MSalters

5

La réponse à similiar question outside SO était:

Download and install the Windows SDK from here

(lien devis ne peut pas être approprié pour votre système)

+0

kernel32.lib est toujours installé avec VS (bien, peut-être sauf pour les versions bitorrent, je ne sais pas) – Calvin1602

2

Assurez-vous que vous avez le SDK de Windows installé.

0

Vous êtes sur Visual, il n'y a AUCUNE raison pour laquelle kernel32.lib ne serait pas là. Quoi qu'il en soit, il devrait être dans C:/Program Files (x86)/MS Visual Studio/VC/lib

Je suppose que vous avez mal tapé quelque chose dans la configuration du projet. Chaque lib, chaque chemin supplémentaire doit être séparé par un ';'. Si vous n'êtes pas sûr, cliquez sur le bouton droit [...], dans la nouvelle fenêtre, il ne devrait y avoir qu'un seul article par ligne.

Questions connexes