Как заставить Insure ++ работать с boost и g ++ 3.4.x - PullRequest
1 голос
/ 03 ноября 2011

У меня есть среда разработки linux с g ++ 3.4.6, boost 1.47 (последняя версия) и Insure ++.До того, как я добавил boost, все было нормальноПосле того, как я попытался скомпилировать простой тест с использованием библиотек Boost Only, я получил следующее:

11/3/11 8:58:37 AM CET: insure g++ -Zstl -Zop /root/.pulse2-agent/data/work/insure/shared/misc/insure.opt -c -DXF_PROFILE  -o temp/linux_x86/test_boost.o -Wall -Werror -pthread -g   -I. -I../../../shared/libs/libtommath-0.41 -I../../../shared/libs/expat-1.95.8/lib -I../../../shared/generic -I../../../shared/test -I../../../shared/libs/sentinel_hasp -I../../../shared/libs/sqlite -I../../../shared/generated -I/boost test_boost.cpp
11/3/11 8:58:37 AM CET: [container_fwd.hpp:64] **PARSE_ERROR**
11/3/11 8:58:37 AM CET:   Parse error.
11/3/11 8:58:37 AM CET: >>     template <class charT, class traits, class Allocator> class basic_string;
11/3/11 8:58:37 AM CET: too few template parameters -- does not match previous declaration
11/3/11 8:58:37 AM CET: [container_fwd.hpp:87] **PARSE_ERROR**
11/3/11 8:58:37 AM CET:   Parse error.
11/3/11 8:58:37 AM CET: >>     template <class T, class Allocator> class vector;
11/3/11 8:58:37 AM CET: too few template parameters -- does not match previous declaration
11/3/11 8:58:37 AM CET: [container_fwd.hpp:88] **PARSE_ERROR**
11/3/11 8:58:37 AM CET:   Parse error.
11/3/11 8:58:37 AM CET: >>     template <class Key, class T, class Compare, class Allocator> class map;
11/3/11 8:58:37 AM CET: too few template parameters -- does not match previous declaration
11/3/11 8:58:37 AM CET: [container_fwd.hpp:89] **PARSE_ERROR**
11/3/11 8:58:37 AM CET:   Parse error.
11/3/11 8:58:37 AM CET: >>     template <class Key, class T, class Compare, class Allocator>
11/3/11 8:58:37 AM CET: too few template parameters -- does not match previous declaration
11/3/11 8:58:37 AM CET: [container_fwd.hpp:91] **PARSE_ERROR**
11/3/11 8:58:37 AM CET:   Parse error.
11/3/11 8:58:37 AM CET: >>     template <class Key, class Compare, class Allocator> class set;
11/3/11 8:58:37 AM CET: too few template parameters -- does not match previous declaration
11/3/11 8:58:37 AM CET: [container_fwd.hpp:92] **PARSE_ERROR**
11/3/11 8:58:37 AM CET:   Parse error.
11/3/11 8:58:37 AM CET: >>     template <class Key, class Compare, class Allocator> class multiset;
11/3/11 8:58:37 AM CET: too few template parameters -- does not match previous declaration
11/3/11 8:58:37 AM CET: Driver: error executing "Run "-Zoicompiler /usr/local/bin/g++" -Zstl -Zop /root/.pulse2-agent/data/work/insure/shared/misc/insure.opt -c -DXF_PROFILE -o temp/linux_x86/test_boost.o -Wall -Werror -pthread -g -I. -I../../../shared/libs/libtommath-0.41 -I../../../shared/libs/expat-1.95.8/lib -I../../../shared/generic -I../../../shared/test -I../../../shared/libs/sentinel_hasp -I../../../shared/libs/sqlite -I../../../shared/generated -I/boost test_boost.cpp"

Без Insure ++ он компилируется просто отлично.К сожалению, я не могу сменить компилятор на новый из-за внутренней структуры проекта.

Есть идеи, какова реальная проблема и как я могу ее решить?

/ edit

Я где-то читал, что проблемы такого рода могут быть вызваны неправильными предварительными объявлениями всамо повышение.Поэтому я добавил в свой тест перед повышением заголовки:

#define BOOST_DETAIL_NO_CONTAINER_FWD

И теперь он не сообщает о каких-либо проблемах, но полностью вылетает во время компиляции:

insure g++ -Zstl -Zop /root/x-formation-pk/shared/misc/insure.opt -c -DXF_PROFILE  -o temp/linux_x86/test_boost.o -Wall -Werror -pthread -g   -I. -I../../../shared/libs/libtommath-0.41 -I../../../shared/libs/expat-1.95.8/lib -I../../../shared/generic -I../../../shared/test -I../../../shared/libs/sentinel_hasp -I../../../shared/libs/sqlite -I../../../shared/generated -I/boost test_boost.cpp
Driver: error executing "Run "-Zoicompiler /usr/local/bin/g++" -Zstl -Zop /root/x-formation-pk/shared/misc/insure.opt -c -DXF_PROFILE -o temp/linux_x86/test_boost.o -Wall -Werror -pthread -g -I. -I../../../shared/libs/libtommath-0.41 -I../../../shared/libs/expat-1.95.8/lib -I../../../shared/generic -I../../../shared/test -I../../../shared/libs/sentinel_hasp -I../../../shared/libs/sqlite -I../../../shared/generated -I/boost test_boost.cpp"
makepp: error: Failed to build targets `/root/x-formation-pk/shared/generic/test/temp/linux_x86/test_boost.lob' `/root/x-formation-pk/shared/generic/test/temp/linux_x86/test_boost.o' [2]

1 Ответ

1 голос
/ 23 ноября 2011

На самом деле я получаю подтверждение от Parasoft, что нашел ошибку. Они попытаются это исправить, проблема уже создана.

...