Wpis z mikrobloga

jak tu zlinkować te 2 pliki w cpp+? Żebym mógł wywołać funkcję w pliku main.cpp a jej definicje mieć w funkcja.cpp?
mam takie zawartości plików ale jest błąd: 1>main.cpp(8): error C3861: 'funkcjatest': identifier not found
#cpp #programowanie
funkcja.cpp

#include "stdafx.h"
using namespace std;

void funkcja_test()
{
cout << "Przenieslismy sie od pliku: " << __FILE__ << endl;
}

main.cpp

#include "stdafx.h"
using namespace std;

int main()
{
funkcja_test();
}

stdafx.h

#include "conio.h"
#include

void funkcja_test(); // ładowanie funkcja_test

używam VisualStudio2012
  • 9
@biedrzycki: zrobiłem identycznie, wysypało jakimiś niezrozumiałymi błędami..

1>main.obj : error LNK2001: unresolved external symbol "public: static class std::_Generic_error_category std::_Error_objects::_Generic_object" (?_Generic_object@?$_Error_objects@H@std@@2V_Generic_error_category@2@A)
1>funkcja.obj : error LNK2001: unresolved external symbol "public: static class std::_Generic_error_category std::_Error_objects::_Generic_object" (?_Generic_object@?$_Error_objects@H@std@@2V_Generic_error_category@2@A)
1>main.obj : error LNK2001: unresolved external symbol "public: static class std::_System_error_category std::_Error_objects::_System_object" (?_System_object@?$_Error_objects@H@std@@2V_System_error_category@2@A)
1>funkcja.obj : error LNK2001: unresolved external symbol "public: static class std::_System_error_category std::_Error_objects::_System_object" (?_System_object@?$_Error_objects@H@std@@2V_System_error_category@2@A)
1>main.obj : error LNK2011: precompiled object not linked in; image may not
@Rilekt: samego VS nie używałem bardzo dawno, ale wygląda na to że nie pasują mu biblioteki runtime'u C++ - albo są niekompatybilne binarnie albo ich brakuje (raczej to pierwsze, bo inaczej by więcej błędów się posypało). Jak dokładnie ten projekt stworzyłeś? Używasz czegoś poza standardowymi bibliotekami C++?
@Rilekt: Ale nie chodzi mi o Twój kod - to widziałem w pierwszym poście już - tylko o inne biblioteki i to w jaki sposób stworzyłeś projekt dokładnie. Kod jest w porzadku, bo nie kompilator się pluje tylko linker.
Nie wiem, przykładowo, ludzie w internecie mieli tego typu błędy jak próbowali użyć SFMLa skompilowanego MSVCC11 (VS12) w programie kompilowanym MSVCC12 (VS13) i nie wychodziło, bo ABI się zmieniło.

Ale jeżeli nie
@Rilekt: no idea, to jakiś wymysł M$ jest, ja siedzę na Linuksie i gcc to rozwiązuje to trochę inaczej.
Tzn. wiem po co to ten cały mechanizm jest - przy kompilacji zapisuje dane pośrednie o nagłówkach, żeby następnym razem kompilacja była szybsza, ale czemu potrzebuje do tego tych plików konkretnie - nie wiem, musiałbyś się skonsultować z MSDNem; ja zawsze je usuwałem obydwa i byłem zadowolony (bo przy małych projektach nie