← Back to team overview

yade-dev team mailing list archive

Re: Make ccache working

 

You cmake logs says:
> qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such
file or directory
> -- Found unsuitable Qt version "" from NOTFOUND

I discovered that yesterday to. I'm really not sure it is related to the
ccache problem but it is strange. Try "sudo apt install qt5-default"? It
fixes the problem partly on 16.04.

I noticed the -DCMAKE_CXX_COMPILER_LAUNCHER indeed, but to me that's just
another way, not the unique way, since ccache is supposed to be used even
without cmake. It is suprising that "ccache g++" can't find g++ while g++
is available system-wide, but... yes maybe a 18.04 feature...
Cheers
Bruno




On Thu, 28 Mar 2019 at 07:48, François <francois.kneib@xxxxxxxxx> wrote:

> Here attached is the full cmake output when I did:
>
>> rm -r *
>> export CC="ccache /usr/bin/gcc"
>> export CXX="ccache /usr/bin/g++"
>> cmake -DCMAKE_INSTALL_PREFIX=../install ../trunk
>>
>
>
> Le jeu. 28 mars 2019 à 06:48, Bruno Chareyre <
> bruno.chareyre@xxxxxxxxxxxxxxx> a écrit :
>
>> Tu peux ajouter la sortie de cmake a ton message? Pas dispo ce matin.
>> B
>>
>> Le jeu. 28 mars. 2019 00:58, François <francois.kneib@xxxxxxxxx> a
>> écrit :
>>
>>> Thanks for your help. I'm on kubuntu 18.04 (cmake 3.10.2), and maybe our
>>> versions mismatch is at the origin of the issue (I finally found a
>>> solution, see the bottom of this message).
>>> By "installing" ccache I meant in fact "enable/use" ccache, I also
>>> installed it with "apt install ccache". Of course, I always start from an
>>> empty build dir.
>>>
>>> Now I restarted everything with a clean $PATH, reverting my changes.
>>> Using export CC and CXX doesn't work:
>>>
>>>> export CC="ccache gcc"
>>>> export CXX="ccache g++"
>>>> cmake -DCMAKE_INSTALL_PREFIX=../install ../trunk
>>>> [...]
>>>> *ccache: error: Could not find compiler "g++" in PATH*
>>>>
>>> Somebody had the same issue here:
>>> https://github.com/bazelbuild/bazel/issues/3642 so I tried
>>> unsuccessfully :
>>>
>>>> rm -r *
>>>> export CC="ccache /usr/bin/gcc"
>>>> export CXX="ccache /usr/bin/g++"
>>>> cmake -DCMAKE_INSTALL_PREFIX=../install ../trunk
>>>> [...]
>>>> */usr/bin/ccache: invalid option -- 'd'*
>>>>
>>> I didn't found exactly why, but somewhere the "-d" option is passed
>>> directly to ccache (instead of gcc/g++ I assume), but not in your 16.04
>>> system.
>>>
>>> So I tried two methods to use $PATH instead of $CXX and $CC:
>>> - the one in ccache documentation, with symlinks :
>>> https://ccache.samba.org/manual/latest.html#_run_modes
>>> - the one we can find everywhere with export PATH="/usr/lib/ccache:$PATH"
>>> But the result is finally the same as above.
>>>
>>> *OUTCOME*:
>>> I feel a bit confused as I spent some time to make it work to finally
>>> see that cmake handles ccache since version 3.4:
>>> https://cmake.org/cmake/help/v3.6/release/3.4.html#variables
>>> Without environment variables nor symlinks, the solution basically is to
>>> run cmake with "*-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
>>> -DCMAKE_C_COMPILER_LAUNCHER=ccache*"
>>> Now ccache is activated, after a successful build I have 720.9 MB in
>>> cache, yade full build in 30s yeepee :-D
>>> This solution should also work for ubuntu 16.04 as it carries cmake 3.5,
>>> but not for ubuntu 14.04.
>>>
>>> NB: Interestingly, compiling [yade with python 3] for the first time
>>> with the full ccache of [yade with python 2.7] took about 5 mins against
>>> about 30min for a full uncached build.
>>>
>>> Cheers,
>>> François
>>>
>>>
>>>
>>>
>>> Le mer. 27 mars 2019 à 20:40, Bruno Chareyre <
>>> bruno.chareyre@xxxxxxxxxxxxxxx> a écrit :
>>>
>>>> I checked your ubuntu 12.04 page again. That's actually about hiding
>>>> ccache behind normal gcc invocation, and I kind-of dislike the idea.
>>>> Explicit call to «ccache g++» sounds cleaner to me and it is compatible
>>>> with mpicxx (for ubuntu 16.04 at least).
>>>> Better undo what you have done until now in terms of ccache hacks and
>>>> stick to yade doc's method if you are unsure.
>>>>
>>>> «ccache -s» also reports unsupported options on my ubuntu 16.04 but a
>>>> full rebuild takes 40sec regardless.
>>>>
>>>> Bruno
>>>>
>>>> Le mer. 27 mars. 2019 19:46, Bruno Chareyre <
>>>> bruno.chareyre@xxxxxxxxxxxxxxx> a écrit :
>>>>
>>>>> Also, did you start from fresh build after exporting CXX?
>>>>> I mean:
>>>>> rm -rf ./*
>>>>> export ...
>>>>> cmake [options]
>>>>> make -jN
>>>>>
>>>>> Bruno
>>>>>
>>>>> Le mer. 27 mars. 2019 18:33, Bruno Chareyre <
>>>>> bruno.chareyre@xxxxxxxxxxxxxxx> a écrit :
>>>>>
>>>>>> Hi François,
>>>>>>
>>>>>> Please remember to give your linux version.
>>>>>>
>>>>>> On Wed, 27 Mar 2019 at 17:44, François <francois.kneib@xxxxxxxxx>
>>>>>> wrote:
>>>>>>
>>>>>>> export CXX=ccache g++
>>>>>>>
>>>>>>>> bash: export: « g++ » : identifiant non valable
>>>>>>>>
>>>>>>> Using
>>>>>>>
>>>>>>>> export CXX='ccache g++'
>>>>>>>
>>>>>>> works
>>>>>>>
>>>>>>
>>>>>> Thanks for pointing that out. I forgot the " indeed, I'll fix it.
>>>>>> It would be useful to turn your bash to english for pasting errors
>>>>>> here (also much more efficient when searching online solutions).
>>>>>>
>>>>>>
>>>>>>
>>>>>>> but it will result in cmake fail while checking cc compiler.
>>>>>>> Finally, I "installed" ccache thanks to the first answer here:
>>>>>>> https://askubuntu.com/questions/470545/how-do-i-set-up-ccache and
>>>>>>> it *kinda* works.
>>>>>>>
>>>>>>
>>>>>> Arguably, using ccache is assuming that it is installed. ;)
>>>>>> Not sure why you needed that ubuntu 12.04 forum, as far as I remember
>>>>>> I only had to "apt-get install ccache".
>>>>>>
>>>>>>
>>>>>>>
>>>>>>>    - the second one, once the install is ok and cmake uses ccache,
>>>>>>>    is that I only get "unsupported compiler option" when I try *ccache
>>>>>>>    -s* after a full yade compilation. It results in a almost-empty
>>>>>>>    cache:
>>>>>>>
>>>>>>>
>>>>>> Does compilation work?
>>>>>> Could you send cmake output, and some sample of "make VERBOSE=1"?
>>>>>>
>>>>>> I have this:
>>>>>>
>>>>>> *[ 39%] Building CXX object
>>>>>> CMakeFiles/yade.dir/pkg/dem/Ig2_Box_Sphere_ScGeom.cpp.o/usr/bin/ccache
>>>>>> g++  -DBOOST_MATH_DISABLE_FLOAT128=1 -DNDE...*
>>>>>>
>>>>>> Cheers
>>>>>>
>>>>>> Bruno
>>>>>>
>>>>>> _______________________________________________
>>>> Mailing list: https://launchpad.net/~yade-dev
>>>> Post to     : yade-dev@xxxxxxxxxxxxxxxxxxx
>>>> Unsubscribe : https://launchpad.net/~yade-dev
>>>> More help   : https://help.launchpad.net/ListHelp
>>>>
>>> _______________________________________________
>>> Mailing list: https://launchpad.net/~yade-dev
>>> Post to     : yade-dev@xxxxxxxxxxxxxxxxxxx
>>> Unsubscribe : https://launchpad.net/~yade-dev
>>> More help   : https://help.launchpad.net/ListHelp
>>>
>> _______________________________________________
> Mailing list: https://launchpad.net/~yade-dev
> Post to     : yade-dev@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~yade-dev
> More help   : https://help.launchpad.net/ListHelp
>


-- 
-- 
_______________
Bruno Chareyre
Associate Professor
ENSE³ - Grenoble INP
Lab. 3SR
BP 53
38041 Grenoble cedex 9
Tél : +33 4 56 52 86 21
Fax : +33 4 76 82 70 43
________________

Email too brief?
Here's why! http://emailcharter.org

References