Я бьюсь головой о стену здесь.
Все, что я хочу, это связать статический файл .lib в приложении форм окна cpp! Итак, у меня есть папка include в папке моего проекта, в которой хранятся файлы заголовков для этого .lib (lib — это Yaml-cpp, если кому-то интересно). И у меня есть папка lib, в которой есть файлы .lib для этой библиотеки.
Я проверил это на пустом проекте
1. Я создаю новый проект Windows Forms в VS2008 на C++.
2. Я захожу в свойства проекта - c/c++ общие и дополнительные включаемые каталоги, в которых есть заголовочные файлы yaml-cpp.
3. Я иду к компоновщику и добавляю путь к моему каталогу lib
4. Я иду к компоновщику - ввожу и добавляю свой .lib файл
5. Я проверяю командную строку компоновщика, и она содержит мой файл .lib, поэтому все должно быть настроено.
6. Затем я пишу пример кода в теле функции onbutton (которое появляется в form1.h).
Пример кода взят отсюда http://code.google.com/p/yaml-cpp/wiki/HowToParseADocument и это так же просто, как:
#include <fstream>
#include "yaml.h"
а потом:
std::ifstream fin("test.yaml");
YAML::Parser parser(fin);
YAML::Node doc;
while(parser.GetNextDocument(doc)) {
//do nothing yet
}
7. Затем я компилирую и получаю 10 «неразрешенных внешних».
Я просмотрел другой проект, который использует ту же библиотеку, и у него точно такая же структура каталогов, такое же имя .lib, добавленное в компоновщик - ввод - дополнительные зависимости, те же файлы .lib и .h. И это работает для этого проекта, но это не работает для меня.
Что в мире не так?
РЕДАКТИРОВАТЬ: я попытался создать новое консольное приложение Windows 32, и оно работало правильно. Затем я попытался создать еще одно новое приложение Windows Forms, но это не удалось.
Это подтверждено сейчас. Те же шаги для связывания библиотеки работают в консольном приложении и не работают в приложении Windows Forms. ЗАЧЕМ?