Я столкнулся с проблемой с printf и cout при использовании boost / filesystem.hpp
Я создал проект C ++ в Eclipse Juno с настройками Mingw
objectfile.hpp содержит объявления и #include «boost / filesystem.hpp»
objectfile.cpp содержит определения и использование boost :: filesystem :: exist (…)
mainfile.cpp содержит следующий код:
#include <stdio.h>
using namespace std;
int main() {
printf("asdf\n");
cout <<"asdf"<<endl;
return 0;
}
mainfile.cpp не включает заголовок objectfile.hpp, но связывается на этапе компоновки. Также boost_system и boost_filesystem связаны между собой.
Проблема: выход пуст. Нет никакого вывода, пока я не удалю boost / filesystem.hpp и соответствующий код, а затем перекомпилирую.
Я еще не тестировал с другими библиотеками повышения. Может быть, у кого-то еще была похожая проблема?
Windows 7 64 бит
Eclipse Juno 64 bit -std = c ++ 11 опция компилятора
Boost 1.51 многопоточный динамически связанный
Я перестроил Boost 1.51 с этими параметрами:
-j8 toolset = gcc cxxflags = -std = gnu ++ 0x вариант = оптимизация релиза = скорость соединения = статическая многопоточность = multi —layout = system —prefix = boost install
и теперь это работает.
благодарю вас Маршалл Клоу. Отправьте ответ, и я приму его.
Повторная отправка в качестве ответа:
Возможно ли, что вы создали библиотеки boost с параметрами компилятора, отличными от вашей программы? Конкретно я бы проверил std=c++11
,
Других решений пока нет …