Библиотека динамической компоновки не создает файл .lib при компиляции (Visual Studio C ++ Express)

В рамках изучения C ++, Я написал простую библиотеку классов + приложение, которое на нее ссылается. Создается все, за исключением того, что библиотека классов не создает файл .lib, в результате чего приложение выдает сообщение «ССЫЛКА: фатальная ошибка LNK1104: невозможно открыть файл». Это кажется очень разумным; очевидно, что отсутствие необходимого файла означает фатальную ошибку. (Примечание: у меня еще нет книги)

Итак, я пошел искать причины, по которым файл .lib может не создаваться. Мой поиск-фу, кстати, слабоват. Все, что я обнаружил, это то, что если бы в библиотеке не было тегов __declspec (dllexport), она не экспортировала бы .lib.

Теперь я опубликую заголовок и содержимое .cpp библиотеки классов (простая «Консоль» "класс с одним методом" Write (std :: string) ").

Заголовок:

// Extensions.h

#pragma once

#include "stdafx.h"

namespace Extensions {

    __declspec(dllexport) class Console
    {
    public:
        __declspec(dllexport) static void Write(std::string text);
    };
}

Я не уверен, нужно ли помечать функцию, когда я помечал класс, но я могу проверить это, когда она работает.

И файл .cpp:

// This is the main DLL file.

#include "stdafx.h"

// #include "Console.h"

namespace Extensions {

    void Console::Write(std::string text)
    {
        std::cout << text.c_str();
    }
}

Я проверил, и он установлен для создания библиотеки динамической компоновки.

Спасибо.

33
задан jon-hanson 16 February 2011 в 17:27
поделиться