Неопределённая ссылка на «main»
Новичок в С
sudo gcc cookie.c
error code
(root@mat-VirtualBox:/home/gather/Desktop/MIX_TTL_AND# gcc cookie.c /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o: в функции «_start»: (.text+0x24): неопределённая ссылка на «main» collect2: error: ld returned 1 exit status)
void Get_cookie(char *ck, char *message)
{
const int COOKIE_SIZE = 102400;
int i, j, length = 0;
char temp[] = "Set-Cookie: ";
char cookie[COOKIE_SIZE];
char *start = NULL;
char *msg = NULL;
char *st = NULL;
msg = strstr(message, temp); // find set-cookie in message
if (msg == NULL) // not found
{
strcpy(ck, "null"); // return null
return;
}
start = (char *) malloc(COOKIE_SIZE*sizeof(char));
strcpy(start, msg); // copy msg to start
do
{
st = strstr(start, temp); // find set-cookie in start
if (st == NULL)
break; // don't have anymore => break
st += strlen(temp); // move st pointer to content of feild
i = 0;
while (st[i] != '\n') // find the character endline '\n'
i++;
for (j = 0; j < i; j++) // copy content to cookie
{
cookie[length+j] = st[j];
}
cookie[length+i] = ';'; // add ;
length += (i + 1);
start += (strlen(temp) + i + 1); // move start pointer to next feild
} while (st != NULL);
cookie[length] = '\0';
strcpy(ck, cookie); // return via ck
printf("Cookie: \n%s\n", cookie);
}
Ответы (2 шт):
Автор решения: Rikitikitavi
→ Ссылка
Если вы хотите скомпилировать cookie.c то нужно вызвать gcc так:
gcc -c cookie.c
и вы получите объектный файл cookie.o. Что бы получить программу нужно что бы у вас была где-то функция main, например в файле main.c. Компилируете ее также:
gcc -c main.c
Далее собираете прогармму:
gcc -o myapp cookie.o main.o
и через sudo не нужно с компилятором работать.
Автор решения: Mikhail
→ Ссылка
Попробуйте добавить функцию main в проект, как я уже сделал ниже.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string>
void Get_cookie(char* ck, char* message)
{
const int COOKIE_SIZE = 102400;
int i, j, length = 0;
char temp[] = "Set-Cookie: ";
char cookie[COOKIE_SIZE];
char* start = NULL;
char* msg = NULL;
char* st = NULL;
msg = strstr(message, temp); // find set-cookie in message
if (msg == NULL) // not found
{
strcpy(ck, "null"); // return null
return;
}
start = (char*)malloc(COOKIE_SIZE * sizeof(char));
strcpy(start, msg); // copy msg to start
do
{
st = strstr(start, temp); // find set-cookie in start
if (st == NULL)
break; // don't have anymore => break
st += strlen(temp); // move st pointer to content of feild
i = 0;
while (st[i] != '\n') // find the character endline '\n'
i++;
for (j = 0; j < i; j++) // copy content to cookie
{
cookie[length + j] = st[j];
}
cookie[length + i] = ';'; // add ;
length += (i + 1);
start += (strlen(temp) + i + 1); // move start pointer to next feild
} while (st != NULL);
cookie[length] = '\0';
strcpy(ck, cookie); // return via ck
printf("Cookie: \n%s\n", cookie);
}
int main() {
char ck[10];
char message[10];
strcpy(ck, "ty");
strcpy(message, "hellow");
Get_cookie(ck, message);
return 0;
}