• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Błąd podczas kompilacji programu SDK

Konkurs Mistrz Programowania
0 głosów
472 wizyt
pytanie zadane 25 października 2015 w C i C++ przez Mavimix Dyskutant (8,470 p.)

Witam, przy próbie kompilacji programu SDK pojaiwa się taki błąd:

||=== Build: Debug in cascscsaac (compiler: GNU GCC Compiler) ===|
W:\WorkSpace\cascscsaac\main.cpp|14|warning: #pragma once in main file [enabled by default]|
W:\WorkSpace\cascscsaac\main.cpp|53|warning: this decimal constant is unsigned only in ISO C90 [enabled by default]|
W:\WorkSpace\cascscsaac\main.cpp|766|warning: 'x' defined but not used [-Wunused-variable]|
W:\WorkSpace\cascscsaac\main.cpp|775|warning: 'z' defined but not used [-Wunused-variable]|
obj\Debug\main.o||In function `Z16MyDispatchProcTCP15SIMCONNECT_RECVmPv@12':|
W:\WorkSpace\cascscsaac\main.cpp|784|undefined reference to `SimConnect_AddToDataDefinition@28'|
W:\WorkSpace\cascscsaac\main.cpp|786|undefined reference to `SimConnect_RequestDataOnSimObject@36'|
W:\WorkSpace\cascscsaac\main.cpp|788|undefined reference to `SimConnect_SetDataOnSimObject@28'|
p:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\..\..\..\libmingw32.a(main.o):main.c:(.text.startup+0xa7)||undefined reference to `WinMain@16'|
||=== Build failed: 4 error(s), 4 warning(s) (0 minute(s), 0 second(s)) ===|

Tu jest plik .h (definicje są w tym samym pliku): http://www.speedyshare.com/rsEcx/SimConnect.h To jest kod:

int     quit = 0;
HANDLE  hSimConnect = NULL;
HRESULT hr;

static enum DATA_DEFINE_ID {
  DEFINITION3
} x;

struct DataInitposition
{
    double Pitch;
} y;

static enum DATA_REQUEST_ID {
    REQUEST_PITCH,
} z;

DataInitposition tc;

// Link DEFINITION3 with the SIMCONNECT_DATA_INITPOSITION structure
void CALLBACK MyDispatchProcTC(SIMCONNECT_RECV* pData, DWORD cbData, void *pDataSet)
{

    hr = SimConnect_AddToDataDefinition(hSimConnect, DEFINITION3, "PLANE PITCH DEGREES", "Radians",
             SIMCONNECT_DATATYPE_INITPOSITION, 0);

    hr = SimConnect_RequestDataOnSimObject(hSimConnect, REQUEST_PITCH, DEFINITION3, SIMCONNECT_OBJECT_ID_USER, SIMCONNECT_PERIOD_ONCE);

    hr = SimConnect_SetDataOnSimObject(hSimConnect, DEFINITION3, SIMCONNECT_OBJECT_ID_USER, 0, 0, sizeof(tc), &tc);
}

1 odpowiedź

+1 głos
odpowiedź 25 października 2015 przez Radfler VIP (101,030 p.)
wybrane 25 października 2015 przez Mavimix
 
Najlepsza

To jest plik .h czy .cpp? Podstawowym błędem jest to, że nawet maina nie ma zdefiniowanego!

p:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\..\..\..\libmingw32.a(main.o):main.c:(.text.startup+0xa7)||undefined reference to `WinMain@16'|

 

komentarz 25 października 2015 przez Mavimix Dyskutant (8,470 p.)

Tak wygląda cały plik: http://speedy.sh/PFRQD/main.cpp

komentarz 25 października 2015 przez Radfler VIP (101,030 p.)
Jak mówiłem, w tym pliku brakuje funkcji:

1. main

2. SimConnect_SetDataOnSimObject

3. SimConnect_RequestDataOnSimObject

4. SimConnect_AddToDataDefinition

Nie zapomniałeś może zainkludować jakiegoś pliku?
komentarz 25 października 2015 przez Mavimix Dyskutant (8,470 p.)

Właśnie problem polega na tym że wszystko mam zainkludowane.

Poprawiłem składnie: 

int main(SIMCONNECT_RECV* pData, DWORD cbData, void *pDataSet)
{

    hr = SimConnect_RequestDataOnSimObject(hSimConnect, REQUEST_PITCH, DEFINITION3, SIMCONNECT_OBJECT_ID_USER, SIMCONNECT_PERIOD_ONCE);

    hr = SimConnect_AddToDataDefinition(hSimConnect, DEFINITION3, "PLANE PITCH DEGREES", "Radians",
             SIMCONNECT_DATATYPE_INITPOSITION, 0);

    hr = SimConnect_SetDataOnSimObject(hSimConnect, DEFINITION3, SIMCONNECT_OBJECT_ID_USER, 0, 0, sizeof(tc), &tc);
}

Ale cały czas wyskakuje mi błąd:

||=== Build: Debug in cascscsaac (compiler: GNU GCC Compiler) ===|
obj\Debug\main.o||In function `main':|
W:\WorkSpace\cascscsaac\main.cpp|783|undefined reference to `SimConnect_RequestDataOnSimObject@36'|
W:\WorkSpace\cascscsaac\main.cpp|786|undefined reference to `SimConnect_AddToDataDefinition@28'|
W:\WorkSpace\cascscsaac\main.cpp|788|undefined reference to `SimConnect_SetDataOnSimObject@28'|
||=== Build failed: 3 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

 

komentarz 25 października 2015 przez Radfler VIP (101,030 p.)

688, 686, 684 - w tych linijkach masz funkcje, które nie zostały nigdzie zdefiniowane. Musisz albo je usunąć albo zdefiniować. Poza tym, z tego co widzę to funkcje między linijkami 676, a 747 nie zostały nigdzie zdefiniowane. Może Twój linker nie wykrywa odpowiednich plików .a z tymi funkcjami?

komentarz 25 października 2015 przez Mavimix Dyskutant (8,470 p.)
O jej głupi błąd :) zapomniałem o linkerze hahaha. Dzięki za pomoc.

Podobne pytania

0 głosów
1 odpowiedź 232 wizyt
pytanie zadane 25 października 2015 w C i C++ przez Mavimix Dyskutant (8,470 p.)
0 głosów
1 odpowiedź 436 wizyt
pytanie zadane 3 maja 2019 w C# przez edtjyuh Nowicjusz (220 p.)
0 głosów
0 odpowiedzi 338 wizyt
pytanie zadane 8 marca 2019 w JavaScript przez ShiroUmizake Nałogowiec (46,300 p.)

93,654 zapytań

142,575 odpowiedzi

323,091 komentarzy

63,172 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...