• 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

VPS Starter Arubacloud
0 głosów
341 wizyt
pytanie zadane 25 października 2015 w C i C++ przez Mavimix Dyskutant (8,420 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,420 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,420 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,420 p.)
O jej głupi błąd :) zapomniałem o linkerze hahaha. Dzięki za pomoc.

Podobne pytania

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

92,973 zapytań

141,937 odpowiedzi

321,177 komentarzy

62,301 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.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...