Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Linkowanie z poziomu kodu (bez tworzenia projektu)

Ostatnio zmodyfikowano 2014-07-02 13:17
Autor Wiadomość
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ć.
P-113081
Witold
» 2014-07-02 09:05:13
Zaincluduj pliki *.cpp.
P-113086
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..?
P-113088
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ć?
P-113093
GGG205
» 2014-07-02 11:53:10
#pragma comment(lib, "np: sfml-graphic-d"). Nie wiem czy o to chodziło tobie.
P-113094
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..?
P-113095
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?
P-113097
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.
P-113100
« 1 »
  Strona 1 z 1