Я новичок в повышении, и подумал, что я попытаюсь использовать некоторые реалистичные сценарии развертывания для .dll, поэтому я использовал следующую команду для компиляции/установить библиотеки:Ошибка увеличения ссылки при использовании «--layout = system» на VS2005
.\bjam install --layout=system variant=debug runtime-link=shared link=shared
--with-date_time --with-thread --with-regex --with-filesystem
--includedir=<my include directory> --libdir=<my bin directory> > installlog.txt
Это казалось работать, но моя простая программа (взято прямо со страницы «Начало работы») терпит неудачу:
#include <boost/regex.hpp>
#include <iostream>
#include <string>
// Place your functions after this line
int main()
{
std::string line;
boost::regex pat("^Subject: (Re: |Aw:)*(.*)");
while (std::cin)
{
std::getline(std::cin, line);
boost::smatch matches;
if (boost::regex_match(line, matches, pat))
std::cout << matches[2] << std::endl;
}
}
Это не удается из-за ошибки компоновщика:
fatal error LNK1104: cannot open file 'libboost_regex-vc80-mt-1_42.lib'
Я уверен, что оба файла .lib и .dll находятся в этом каталоге и назвали, как я хочу, чтобы они были (то есть: boost_regex.lib и т. Д., Все не вернулись, поскольку система -layout =). Так почему же он ищет версию с версией? И как мне заставить его искать неверсифицированный тип библиотеки?
Я попытался это с более «нормальными» вариантами, такими, как показано ниже:
.\bjam stage --build-type=complete --with-date_time --with-thread --with-filesystem --with-regex > mybuildlog.txt
И это прекрасно работает. Я убедился, что мой компилятор увидел каталог «stage \ lib», и он скомпилировался и работал отлично, без чего-либо, кроме того, что среда смотрит в правый каталог lib. Но когда я отбирал эти «тестовые» каталоги и хотел использовать эти другие (не вернувшись), тогда это не удавалось.
Я под VS2005 здесь, на XP. Есть идеи?
Это сработало, хотя теперь я получаю ошибку shared_ptr (ошибка BOOST_ASSERT для нулевого указателя). Я даже прошел через код и не могу понять, как что-то не инициализировано. Вероятно, потому что я скомпилировал библиотеки без этого флага и пытаюсь скомпилировать приложение с ним, но это все еще не имеет большого смысла. В любом случае, спасибо за помощь. –