Boost logo

Boost-Build :

Subject: [Boost-build] clean error with pre-compiled header and non default build location
From: sadhilab_at_[hidden]
Date: 2013-01-06 13:04:48


Hi,

In the project : requirements of Jamroot.jam, I specify a <location> to
have files build on a ram disk. But I also use a "cpp-pch" token after
the project : requirements to pre-compile headers. It builds fine. The
problem is that there is a "Duplicate name of actual target" when
cleaning that seems to refer to the non default pre-compiled header
location. Do I have something wrong since it does not clean up? Here is
the Jamroot.jam file and the build and clean output:

project : requirements
     <include>/home/sadhilab/Workspace/libbase/
     <include>/usr/include/i386-linux-gnu/
     <include>/media/ramdisk/g++libstdc++/include/c++/4.6.3/
     <include>/media/ramdisk/icu/include/
     <include>/media/ramdisk/boost_1_52_0/include/
     <include>/opt/stringencoders/include
     <cxxflags>"-Wfatal-errors -fmessage-length=0 -Wformat -Wno-comments
-Wno-write-strings -pipe -c -ansi -Wpointer-arith -Wno-long-long
-ffunction-sections -fdata-sections -DU_STATIC_IMPLEMENTATION
-D_REENTRANT -DU_USING_ICU_NAMESPACE=0 -std=c++0x"
     <linkflags>"/media/ramdisk/icu/lib/libicui18n.a
/media/ramdisk/icu/lib/libicuuc.a /media/ramdisk/icu/lib/libicudata.a
/media/ramdisk/boost_1_52_0/lib/libboost_system.a
/media/ramdisk/boost_1_52_0/lib/libboost_regex.a
/media/ramdisk/boost_1_52_0/lib/libboost_thread.a
/media/ramdisk/boost_1_52_0/lib/libboost_filesystem.a
/media/ramdisk/boost_1_52_0/lib/libboost_iostreams.a
/opt/stringencoders/lib/libmodpbase64.a -lpthread -ldl -lm"
     <location>/media/ramdisk/build/libbase ;

alias all : libbase ;

cpp-pch pch_base : pch_base.h ;

lib libbase : pch_base [ glob *.cxx ] :
     <link>static ;

09:39:05 **** Incremental Build of configuration libbase for project
libbase ****
/home/sadhilab/Downloads/boost_1_52_0/b2 -j 2 -q toolset=gcc all
...patience...
...patience...
...found 1302 targets...
...updating 4 targets...
gcc.compile.c++.pch /media/ramdisk/build/libbase/pch_base.h.gch
gcc.compile.c++ /media/ramdisk/build/libbase/base.o
gcc.archive /media/ramdisk/build/libbase/libbase.a
...updated 4 targets...

09:39:06 Build Finished (took 1s.123ms)

09:39:14 **** Clean-only build of configuration libbase for project
libbase ****
/home/sadhilab/Downloads/boost_1_52_0/b2 -j 2 -q toolset=gcc clean
/home/sadhilab/Downloads/boost_1_52_0/tools/build/v2/build/virtual-target.jam:1079:
in virtual-target.register-actual-name from module virtual-target
error: Duplicate name of actual target:
<p/media/ramdisk/build/libbase>pch_base.h.gch
error: previous virtual target {
gcc%gcc.compile.c++.pch-pch_base.h.gch.CPP_PCH { pch_base.h.H } }
error: created from ./pch_base
error: another virtual target {
gcc%gcc.compile.c++.pch-pch_base.h.gch.CPP_PCH { pch_base.h.H } }
error: created from ./pch_base
error: added properties: <link>shared
error: removed properties: <link>static
/home/sadhilab/Downloads/boost_1_52_0/tools/build/v2/build/virtual-target.jam:490:
in actualize-no-scanner from module object(file-target)@91
/home/sadhilab/Downloads/boost_1_52_0/tools/build/v2/build/virtual-target.jam:135:
in object(file-target)@91.actualize from module object(file-target)@91
/home/sadhilab/Downloads/boost_1_52_0/tools/build/v2/build-system.jam:749:
in load from module build-system
/home/sadhilab/Downloads/boost_1_52_0/tools/build/v2/kernel/modules.jam:283:
in import from module modules
/home/sadhilab/Downloads/boost_1_52_0/tools/build/v2/kernel/bootstrap.jam:142:
in boost-build from module
/home/sadhilab/Workspace/libbase/boost-build.jam:1: in module scope from
module

09:39:15 Build Finished (took 370ms)

Regards,
Sadhil


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk