mavak / trucov

True coverage tool for C / C++
1 stars 1 forks source link

Error Linking CXX executable trucov Ubuntu 12.04 #180

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Extract trucov_10.1.tgz
2. cmake -DCMAKE_BUILD_TYPE=Release
3. make

What is the expected output? What do you see instead?
This is what I see:
[100%] Building CXX object CMakeFiles/trucov.dir/src/main.cpp.o
Linking CXX executable trucov
CMakeFiles/trucov.dir/src/main.cpp.o: In function 
`boost::program_options::basic_command_line_parser<char>::run() [clone 
.constprop.470]':
main.cpp:(.text+0xc32): undefined reference to 
`boost::program_options::detail::cmdline::get_canonical_option_prefix()'
CMakeFiles/trucov.dir/src/main.cpp.o: In function 
`boost::program_options::validation_error::~validation_error()':
main.cpp:(.text._ZN5boost15program_options16validation_errorD2Ev[_ZN5boost15prog
ram_options16validation_errorD5Ev]+0xd): undefined reference to `vtable for 
boost::program_options::error_with_option_name'
CMakeFiles/trucov.dir/src/main.cpp.o: In function 
`boost::program_options::invalid_option_value::~invalid_option_value()':
main.cpp:(.text._ZN5boost15program_options20invalid_option_valueD2Ev[_ZN5boost15
program_options20invalid_option_valueD5Ev]+0xd): undefined reference to `vtable 
for boost::program_options::error_with_option_name'
CMakeFiles/trucov.dir/src/main.cpp.o: In function 
`boost::program_options::validation_error::~validation_error()':
main.cpp:(.text._ZN5boost15program_options16validation_errorD0Ev[_ZN5boost15prog
ram_options16validation_errorD5Ev]+0xd): undefined reference to `vtable for 
boost::program_options::error_with_option_name'
CMakeFiles/trucov.dir/src/main.cpp.o: In function 
`boost::program_options::invalid_option_value::~invalid_option_value()':
main.cpp:(.text._ZN5boost15program_options20invalid_option_valueD0Ev[_ZN5boost15
program_options20invalid_option_valueD5Ev]+0xd): undefined reference to `vtable 
for boost::program_options::error_with_option_name'
CMakeFiles/trucov.dir/src/main.cpp.o: In function 
`boost::exception_detail::error_info_injector<boost::program_options::invalid_op
tion_value>::~error_info_injector()':
main.cpp:(.text._ZN5boost16exception_detail19error_info_injectorINS_15program_op
tions20invalid_option_valueEED2Ev[_ZN5boost16exception_detail19error_info_inject
orINS_15program_options20invalid_option_valueEED5Ev]+0x34): undefined reference 
to `vtable for boost::program_options::error_with_option_name'
CMakeFiles/trucov.dir/src/main.cpp.o:main.cpp:(.text._ZN5boost16exception_detail
10clone_implINS0_19error_info_injectorINS_15program_options20invalid_option_valu
eEEEED1Ev[boost::exception_detail::clone_impl<boost::exception_detail::error_inf
o_injector<boost::program_options::invalid_option_value> 
>::~clone_impl()]+0x5b): more undefined references to `vtable for 
boost::program_options::error_with_option_name' follow
CMakeFiles/trucov.dir/src/main.cpp.o:(.rodata._ZTVN5boost15program_options20inva
lid_option_valueE[vtable for 
boost::program_options::invalid_option_value]+0x10): undefined reference to 
`boost::program_options::error_with_option_name::what() const'
CMakeFiles/trucov.dir/src/main.cpp.o:(.rodata._ZTVN5boost15program_options20inva
lid_option_valueE[vtable for 
boost::program_options::invalid_option_value]+0x18): undefined reference to 
`boost::program_options::error_with_option_name::substitute_placeholders(std::ba
sic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
CMakeFiles/trucov.dir/src/main.cpp.o:(.rodata._ZTVN5boost15program_options16vali
dation_errorE[vtable for boost::program_options::validation_error]+0x10): 
undefined reference to `boost::program_options::error_with_option_name::what() 
const'
CMakeFiles/trucov.dir/src/main.cpp.o:(.rodata._ZTVN5boost15program_options16vali
dation_errorE[vtable for boost::program_options::validation_error]+0x18): 
undefined reference to 
`boost::program_options::error_with_option_name::substitute_placeholders(std::ba
sic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
CMakeFiles/trucov.dir/src/main.cpp.o:(.rodata._ZTVN5boost16exception_detail19err
or_info_injectorINS_15program_options20invalid_option_valueEEE[vtable for 
boost::exception_detail::error_info_injector<boost::program_options::invalid_opt
ion_value>]+0x10): undefined reference to 
`boost::program_options::error_with_option_name::what() const'
CMakeFiles/trucov.dir/src/main.cpp.o:(.rodata._ZTVN5boost16exception_detail19err
or_info_injectorINS_15program_options20invalid_option_valueEEE[vtable for 
boost::exception_detail::error_info_injector<boost::program_options::invalid_opt
ion_value>]+0x18): undefined reference to 
`boost::program_options::error_with_option_name::substitute_placeholders(std::ba
sic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
CMakeFiles/trucov.dir/src/main.cpp.o:(.rodata._ZTVN5boost16exception_detail10clo
ne_implINS0_19error_info_injectorINS_15program_options20invalid_option_valueEEEE
E[vtable for 
boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector
<boost::program_options::invalid_option_value> >]+0x14): undefined reference to 
`boost::program_options::error_with_option_name::what() const'
CMakeFiles/trucov.dir/src/main.cpp.o:(.rodata._ZTVN5boost16exception_detail10clo
ne_implINS0_19error_info_injectorINS_15program_options20invalid_option_valueEEEE
E[vtable for 
boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector
<boost::program_options::invalid_option_value> >]+0x1c): undefined reference to 
`boost::program_options::error_with_option_name::substitute_placeholders(std::ba
sic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
CMakeFiles/trucov.dir/src/main.cpp.o:(.rodata._ZTIN5boost15program_options16vali
dation_errorE[typeinfo for boost::program_options::validation_error]+0x8): 
undefined reference to `typeinfo for 
boost::program_options::error_with_option_name'
libtrucov_lib.a(config.cpp.o): In function 
`Config::initialize(boost::program_options::variables_map, int, char**)':
config.cpp:(.text+0x4f0e): undefined reference to 
`boost::filesystem::detail::status(boost::filesystem::path const&, 
boost::system::error_code*)'
libtrucov_lib.a(tru_utility.cpp.o): In function `Tru_utility::Tru_utility()':
tru_utility.cpp:(.text+0x25): undefined reference to 
`boost::filesystem::detail::current_path(boost::system::error_code*)'
libtrucov_lib.a(tru_utility.cpp.o): In function 
`Tru_utility::is_dir(std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >)':
tru_utility.cpp:(.text+0x13b): undefined reference to 
`boost::filesystem::detail::status(boost::filesystem::path const&, 
boost::system::error_code*)'
tru_utility.cpp:(.text+0x1a0): undefined reference to 
`boost::filesystem::detail::status(boost::filesystem::path const&, 
boost::system::error_code*)'
libtrucov_lib.a(tru_utility.cpp.o): In function 
`Tru_utility::make_dir(std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >)':
tru_utility.cpp:(.text+0x26d): undefined reference to 
`boost::filesystem::path::remove_filename()'
tru_utility.cpp:(.text+0x285): undefined reference to 
`boost::filesystem::detail::status(boost::filesystem::path const&, 
boost::system::error_code*)'
tru_utility.cpp:(.text+0x2b7): undefined reference to 
`boost::filesystem::detail::create_directory(boost::filesystem::path const&, 
boost::system::error_code*)'
libtrucov_lib.a(tru_utility.cpp.o): In function `Tru_utility::get_instance()':
tru_utility.cpp:(.text+0x3dc): undefined reference to 
`boost::filesystem::detail::current_path(boost::system::error_code*)'
libtrucov_lib.a(tru_utility.cpp.o): In function 
`Tru_utility::clean_path(std::basic_string<char, std::char_traits<char>, 
std::allocator<char> > const&)':
tru_utility.cpp:(.text+0x1532): undefined reference to 
`boost::filesystem::detail::system_complete(boost::filesystem::path const&, 
boost::system::error_code*)'
libtrucov_lib.a(tru_utility.cpp.o): In function 
`Tru_utility::change_dir(std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >)':
tru_utility.cpp:(.text+0x1a88): undefined reference to 
`boost::filesystem::detail::system_complete(boost::filesystem::path const&, 
boost::system::error_code*)'
tru_utility.cpp:(.text+0x1b84): undefined reference to 
`boost::filesystem::path::root_directory() const'
tru_utility.cpp:(.text+0x1be7): undefined reference to 
`boost::filesystem::path::operator/=(boost::filesystem::path const&)'
tru_utility.cpp:(.text+0x1bff): undefined reference to 
`boost::filesystem::detail::status(boost::filesystem::path const&, 
boost::system::error_code*)'
tru_utility.cpp:(.text+0x1c6c): undefined reference to 
`boost::filesystem::detail::status(boost::filesystem::path const&, 
boost::system::error_code*)'
tru_utility.cpp:(.text+0x1ce0): undefined reference to 
`boost::filesystem::detail::status(boost::filesystem::path const&, 
boost::system::error_code*)'
tru_utility.cpp:(.text+0x1d20): undefined reference to 
`boost::filesystem::detail::status(boost::filesystem::path const&, 
boost::system::error_code*)'
libtrucov_lib.a(tru_utility.cpp.o): In function 
`Tru_utility::get_rel_path(std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >)':
tru_utility.cpp:(.text+0x1f87): undefined reference to 
`boost::filesystem::detail::status(boost::filesystem::path const&, 
boost::system::error_code*)'
libtrucov_lib.a(tru_utility.cpp.o):tru_utility.cpp:(.text+0x2688): more 
undefined references to 
`boost::filesystem::detail::status(boost::filesystem::path const&, 
boost::system::error_code*)' follow
libtrucov_lib.a(tru_utility.cpp.o): In function 
`Tru_utility::create_file_name(std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >, std::basic_string<char, std::char_traits<char>, 
std::allocator<char> > const&)':
tru_utility.cpp:(.text+0x2cc0): undefined reference to 
`boost::filesystem::detail::current_path(boost::system::error_code*)'
libtrucov_lib.a(tru_utility.cpp.o): In function 
`Tru_utility::get_abs_path(std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >)':
tru_utility.cpp:(.text+0x30ad): undefined reference to 
`boost::filesystem::path::operator/=(boost::filesystem::path const&)'
tru_utility.cpp:(.text+0x30bd): undefined reference to 
`boost::filesystem::path::root_directory() const'
tru_utility.cpp:(.text+0x3144): undefined reference to 
`boost::filesystem::path::root_directory() const'
libtrucov_lib.a(tru_utility.cpp.o): In function 
`Tru_utility::get_abs_path_file(std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >)':
tru_utility.cpp:(.text+0x3431): undefined reference to 
`boost::filesystem::path::operator/=(boost::filesystem::path const&)'
tru_utility.cpp:(.text+0x3441): undefined reference to 
`boost::filesystem::path::root_directory() const'
tru_utility.cpp:(.text+0x3472): undefined reference to 
`boost::filesystem::path::root_directory() const'
libtrucov_lib.a(tru_utility.cpp.o): In function 
`Tru_utility::read_dir(std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >)':
tru_utility.cpp:(.text+0x39f8): undefined reference to 
`boost::filesystem::detail::directory_iterator_construct(boost::filesystem::dire
ctory_iterator&, boost::filesystem::path const&, boost::system::error_code*)'
tru_utility.cpp:(.text+0x3a39): undefined reference to 
`boost::filesystem::detail::directory_iterator_increment(boost::filesystem::dire
ctory_iterator&, boost::system::error_code*)'
libtrucov_lib.a(tru_utility.cpp.o): In function 
`boost::detail::sp_counted_impl_p<boost::filesystem::detail::dir_itr_imp>::dispo
se()':
tru_utility.cpp:(.text._ZN5boost6detail17sp_counted_impl_pINS_10filesystem6detai
l11dir_itr_impEE7disposeEv[boost::detail::sp_counted_impl_p<boost::filesystem::d
etail::dir_itr_imp>::dispose()]+0x2c): undefined reference to 
`boost::filesystem::detail::dir_itr_close(void*&, void*&)'
libtrucov_lib.a(tru_utility.cpp.o): In function `void 
boost::checked_delete<boost::filesystem::detail::dir_itr_imp>(boost::filesystem:
:detail::dir_itr_imp*)':
tru_utility.cpp:(.text._ZN5boost14checked_deleteINS_10filesystem6detail11dir_itr
_impEEEvPT_[void 
boost::checked_delete<boost::filesystem::detail::dir_itr_imp>(boost::filesystem:
:detail::dir_itr_imp*)]+0x29): undefined reference to 
`boost::filesystem::detail::dir_itr_close(void*&, void*&)'
libtrucov_lib.a(dot_creator.cpp.o): In function 
`Dot_creator::create_render_file(std::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&, bool) [clone 
.constprop.301]':
dot_creator.cpp:(.text+0x330): undefined reference to 
`boost::filesystem::detail::remove_all(boost::filesystem::path const&, 
boost::system::error_code*)'
libtrucov_lib.a(dot_creator.cpp.o): In function 
`Dot_creator::create_render_file(std::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&, bool)':
dot_creator.cpp:(.text+0x16fb): undefined reference to 
`boost::filesystem::detail::remove_all(boost::filesystem::path const&, 
boost::system::error_code*)'
collect2: ld returned 1 exit status
make[2]: *** [trucov] Errore 1
make[1]: *** [CMakeFiles/trucov.dir/all] Errore 2
make: *** [all] Errore 2

What version of the product are you using? On what operating system?
trucov_10.1, gcc version 4.6.3, boost version 1.52.0. O.S. Ubuntu 12.04 LTS

Please provide any additional information below.

Original issue reported on code.google.com by gaetanov...@gmail.com on 17 Jan 2013 at 12:52

GoogleCodeExporter commented 9 years ago
I have forgot this:
I modified some files before of make command as follow:

CMakeLists.txt
132a133
>        boost_system
138a140
>        boost_system-mt

src/tru_utility.cpp
45c45
<       m_curr_dir = fs::current_path<fs::path>();
---
>       m_curr_dir = fs::current_path();
69c69
<       string s = fs::system_complete(".").directory_string();
---
>       string s = fs::system_complete(".").string();
127c127
<       result.push_back( dir_itr->path().file_string() );
---
>       result.push_back( dir_itr->path().string() );

Original comment by gaetanov...@gmail.com on 17 Jan 2013 at 9:02