länka 3rd party bibilotek g++ || deras cmake lägger ej filer i /usr/include eller /usr/local/include

Permalänk
Medlem

länka 3rd party bibilotek g++ || deras cmake lägger ej filer i /usr/include eller /usr/local/include

Hej!

System info:

  • OS: Ubuntu 16.04 gnome.

  • Compiler: g++ (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609

Så jag och några kompisar tänkte testa leka lite med sc2api som jag har byggt via deras instruktioner (se länk innan). Hur som helst, jag lekt med andra tredje part bibliotek (SFML, gnutls, boost m.m.) tidigare har dock haft turen att de lagt in dem in /usr/include samt skapa en länk flagga till g++ via deras cmake/make filer. Denna gång hade jag inte sådan tur. Då jag vet var alla filer är (headers: /home/user/src/s2client-api/include/ och .cc: /home/user/src/s2client-api/src/). Antar jag kan "kopiera"/"flytta" dessa filer will /usr/... men hur kan jag få som t,ex. gnutls en länk flagga (-lgnutls) till dessa för g++?

Tack för svar!

Permalänk
Medlem

Du kan ange extra directories som kompilatorn ska söka i med -I. För linkern ger -L motsvarande funktionalitet.

Permalänk
Datavetare

Tror jag förstår vad du är ute efter. Då du använder cmake är det nog lämpligt att försöka utöka din CMakeLists.txt så att ditt projekt blir konfigureras rätt redan där.

Du lägger till sökvägar för header-filer med include_directories(). Det gör vad som är rätt för din miljö, i fallet gcc blir detta då en -Isökväg flagga.

Bibliotek specificeras med target_link_libraries(). Åter igen, om du kör gcc blir detta då en -lbibliotek flagga.