Linkowanie z poziomu kodu (bez tworzenia projektu)
Ostatnio zmodyfikowano 2014-07-02 13:17
McAffey Temat założony przez niniejszego użytkownika |
Linkowanie z poziomu kodu (bez tworzenia projektu) » 2014-07-02 01:47:07 Witajcie, czy jest możliwość linkowania danego pliku bez tworzenia projektu w środowisku ? Nie mam na myśli linkowania statycznego (uruchamiania kompilatora z odpowiednimi parametrami do linkowania jak to jest popularne np. w Linuksie), tylko za pomocą jakiegoś polecenia wpisanego w kodzie. Wydaje mi się że kiedyś widziałem coś takiego, ale mogę się mylić. Gdyby powyższe wytłumaczenie było niejasne zobrazuję o co mi chodzi.
Mam plik .hpp z deklaracją jednej funkcji i plik .cpp z definicją tej funkcji i teraz w kolejnym pliku .cpp chciałbym skorzystać z tej funkcji, ale bez tworzenia projektu (w którym bym dodał wszystkie 3 pliki) i oczywiście bez ustawiania niczego w globalnych ustawieniach środowiska. Gdy tylko zaincluduję ten plik .hpp to oczywiście życzliwy kompilator poinformuje mnie że nie zna definicji zadeklarowanej tam funkcji. Wyobrażam to sobie jako dodanie jakiejś linijki (dyrektywy preprocesora?) w której wskażę konkretny plik, ale nie wiem czy takie coś jest możliwe, tym bardziej, że nie potrafię nic podobnego wygooglować. |
|
Witold |
» 2014-07-02 09:05:13 Zaincluduj pliki *.cpp. |
|
pekfos |
» 2014-07-02 10:10:17 Miej jeden plik .cpp i wiele nagłówków. Te ostatnie niech zawierają i deklaracje i definicje. Jeśli chcesz rozróżniać deklaracje od implementacji, to używaj różnych rozszerzeń np .h i .hpp. Ale nie .cpp, których nie powinno się dołączać przez #include. Zewnętrzne biblioteki możesz próbować łączyć przez odpowiednią dyrektywę #pragma, ale to nie musi działać. Skoro nie chcesz używać IDE, to może naskrob sobie jakieś makefile..? |
|
Witold |
» 2014-07-02 11:47:18 Ale nie .cpp, których nie powinno się dołączać przez #include |
Jeśli prosty sposób rozwiązuje problem to czemu go nie użyć? |
|
GGG205 |
» 2014-07-02 11:53:10 #pragma comment(lib, "np: sfml-graphic-d"). Nie wiem czy o to chodziło tobie. |
|
pekfos |
» 2014-07-02 12:06:03 Jeśli prosty sposób rozwiązuje problem to czemu go nie użyć? |
Zmiana rozszerzenia nie jest prosta..? |
|
Witold |
» 2014-07-02 12:25:48 Zmiana rozszerzenia nie jest prosta..? |
W takim razie czym różni się Twoje rozwiązanie od mojego? Zmianą nazwy pliku? |
|
McAffey Temat założony przez niniejszego użytkownika |
» 2014-07-02 13:17:12 @Witold masz rację, Wasze rozwiązania różnią się w zasadzie tylko zmianą nazwy plików. Ale nie udało mi się zrobić includowania .cpp (pojawiały się problemy kompilacji) a rozwiązanie Pekfosa jest bardzo dobre, tak będę robił, dzięki :)
@GGG205 tak, chyba to to właśnie kiedyś widziałem, ale w tym momencie tego nie użyję bo nie mam plików skompilowanych do biblioteki. |
|
« 1 » |