_
Na ja, wenn du Funktionen eines anderen Projekts benutzen willst, dann ist ja im Grunde klar, dass die kompilierten cpp-dateien (Objektdateien) dieses anderen Projekts nicht gelinkt werden und du somit Linker-Fehler (nicht auggelöste Verweise) bekommst, wenn du Funktionen per Header bekannt machst, zu denen aber der eigentliche Code fehlt. Pack doch z.B. deine Algorithmen in eine DLL, die du dann dort lädst, wo sie benötigt wird.
Eine andere Möglichkeit wäre, ein Shared-Verzeichnis anzulegen, in das einzelne c-/cpp-/h-Dateien kommen, die z.B. deine Algorithmen enthalten. Die kannst du dann zu Projekten hinzufügen, die den Code brauchen. Er wird kompiliert und vom Linker eingebunden. So hast du allgemeine Funktionssammlungen zentral für alle deine Projekte verfügbar, wenn auch nicht als eigenes Projekt realisiert. Damit der zugehörige Header gefunden wird, musst du halt nur den Shared-Ordner in deine include-Pfade aufnehmen. Die Header sollten selbstverständlich per include-Guards/pragma once gesichert sein.