[SOLVED] Remake on library change?



  • Hi there,

    I have an application project with "libcommon.a" library dependency in my .pro file added using "LIBS += -L../common/ -lcommon". This works fine, but when I recompile the library and try to recompile the application, the application doesn't recognise a newer archive file as a dependency - i.e. as a reason to re-link. I then have to make some arbitrary change+undo+save, which is (i) annoying and (ii) I sometimes forget and, particularly with subtle changes, this leads to me wasting time tracking down problems that should be gone etc. What's the best way to add my library as a dependency so that the application re-links after it changes?

    Thanks for any help!



  • Try to use "PHONY":http://www.gnu.org/software/make/manual/html_node/Phony-Targets.html in makefile

    also you can try -B == --always-make makeflags



  • Hi - thanks for the response, but I don't think that's what I'm after. -B/-always-make takes far too much time (it's a big project) and I'd still need to make the main executable depend on the PHONY target, which I don't know how to do. If I could do that, it'd be easier to just add the dependency to the executable in the makefile, like:

    application: ../common/libcommon.a [other stuff]

    I just don't know how to do that in a .pro file.



  • Add to your .pro file for the project that uses the library:

    @
    PRE_TARGETDEPS = /path/to/your/libcommon.a
    @



  • Thanks Volker - worked like a charm.



  • For some reasons it does not work for me, this is what I get:
    @make[1]: *** No rule to make target '/home/alex/Projects/dtrcet/src/gui/libs/libcore.a', needed by 'gui'. Stop.@


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.