gcc - 警告:函数的隐式声明 'get_int'
gcc - warning: implicit declaration of function 'get_int'
我正在学习 cs50 课程并决定 运行 我的电脑上的代码。
我有以下代码:
#include "cs50.h"
#include <stdio.h>
int main(void)
{
int n;
do
{
//gets an integer from a user
n = get_int("Height: ");
}
while (n < 1 || n > 8);
for (int i = 1; i <= n; i++)
{
for (int j = 0; j < n * 2 + 2; j++)
{
//prints hashes only if j is more or equal to n - 1
if (j >= n - i && j <= n - 1)
{
printf("#");
}
//prints empty spaces to make the pyromide right alinged
else if (j <= n - i)
{
printf(" ");
}
//makes empty spaces between two pyromids
else if (j >= n - 1 && j <= n + 1)
{
printf(" ");
}
//adds hashes for the second pyromid
else if (j >= n + 2 && j <= n + 1 + i)
{
printf("#");
}
}
//starts a new line after finishing the code
printf("\n");
}
}
当我尝试编译它时,发生了这种情况:
gcc cs50.o mario.c -o mario.exe -std=c99 -lcs50
mario.c: In function 'main':
mario.c:10:9: warning: implicit declaration of function 'get_int' [-Wimplicit-function-declaration]
n = get_int("Height: ");
^
C:/Program Files (x86)/Dev-Cpp/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lcs50
collect2.exe: error: ld returned 1 exit status
我在 Windows PC 上使用 gcc 编译器。我还从 here 下载了 cs50 库,并尝试了多种方式来编译和 运行 我的代码。
例如,我尝试使用这一行 cs50.c 和 cs50.h 构建一个中间文件 gcc -c cs50.c
它创建了一个名为 cs50.o、linking 它也没有用。最后一次尝试 link 使用此 -lcs50
的 cs50 库也没有任何效果。
我尝试使用以下方法,但它们对我也不起作用:
importing C library in windows
How to link the cs50 C library in gcc on windows
Jonathan Leffler 正如您所说的那样。非常感谢您帮助解决这个问题。现在编译器工作了,我可以 运行 程序。
我正在学习 cs50 课程并决定 运行 我的电脑上的代码。
我有以下代码:
#include "cs50.h"
#include <stdio.h>
int main(void)
{
int n;
do
{
//gets an integer from a user
n = get_int("Height: ");
}
while (n < 1 || n > 8);
for (int i = 1; i <= n; i++)
{
for (int j = 0; j < n * 2 + 2; j++)
{
//prints hashes only if j is more or equal to n - 1
if (j >= n - i && j <= n - 1)
{
printf("#");
}
//prints empty spaces to make the pyromide right alinged
else if (j <= n - i)
{
printf(" ");
}
//makes empty spaces between two pyromids
else if (j >= n - 1 && j <= n + 1)
{
printf(" ");
}
//adds hashes for the second pyromid
else if (j >= n + 2 && j <= n + 1 + i)
{
printf("#");
}
}
//starts a new line after finishing the code
printf("\n");
}
}
当我尝试编译它时,发生了这种情况:
gcc cs50.o mario.c -o mario.exe -std=c99 -lcs50
mario.c: In function 'main':
mario.c:10:9: warning: implicit declaration of function 'get_int' [-Wimplicit-function-declaration]
n = get_int("Height: ");
^
C:/Program Files (x86)/Dev-Cpp/MinGW64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lcs50
collect2.exe: error: ld returned 1 exit status
我在 Windows PC 上使用 gcc 编译器。我还从 here 下载了 cs50 库,并尝试了多种方式来编译和 运行 我的代码。
例如,我尝试使用这一行 cs50.c 和 cs50.h 构建一个中间文件 gcc -c cs50.c
它创建了一个名为 cs50.o、linking 它也没有用。最后一次尝试 link 使用此 -lcs50
的 cs50 库也没有任何效果。
我尝试使用以下方法,但它们对我也不起作用:
importing C library in windows
How to link the cs50 C library in gcc on windows
Jonathan Leffler 正如您所说的那样。非常感谢您帮助解决这个问题。现在编译器工作了,我可以 运行 程序。