gcc-警告:函数的隐式声明';获取整型';

gcc-警告:函数的隐式声明';获取整型';,c,windows,gcc,cs50,gcc-warning,C,Windows,Gcc,Cs50,Gcc Warning,我正在学习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;

我正在学习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");
    }
}
我正在Windows PC上使用gcc编译器。我还从下载了cs50库,并尝试以多种方式编译和运行我的代码

例如,我试图使用这一行
gcc-cs50.c
从cs50.c和cs50.h构建一个中间文件,它创建了一个名为cs50.o的对象,链接它也不起作用。上次尝试将cs50库与此
-lcs50
链接时,也没有任何效果

我尝试使用以下方法,但它们对我也不起作用:


乔纳森·莱夫勒,正如你所说,正是因为这样。非常感谢您帮助解决这个问题。现在编译器工作了,我可以运行程序了。

乔纳森·莱夫勒,正如你所说的,正是因为这个。非常感谢您帮助解决这个问题。现在编译器工作了,我可以运行程序了。

欢迎使用SO。请不要将文本输出添加为图像。请将错误信息以文本形式复制粘贴到问题中。请显示用于编译程序的确切命令。您在问题
cs50.c
mario.c
中显示的文件是什么?函数
get_int
在哪里定义?
-lcs50
看起来不错,但您必须构建并安装cs50库,并确保找到正确的include文件和库。这可能涉及
-I
-L
标志来扩展包含文件和库文件的搜索路径。这不仅仅是库的问题。还有一个编译器警告,指出
get\u int
的声明丢失。通常使用
而不是
“cs50.h”
包含
cs50.h
。您的文件夹中有自己的标题吗?CS50函数的名称曾经是,
GetInt()
等等。它们在几年前发生了变化。您是否查看了
cs50.h
文件以检查其中是否声明了
get_int()
。请不要将文本输出添加为图像。请将错误信息以文本形式复制粘贴到问题中。请显示用于编译程序的确切命令。您在问题
cs50.c
mario.c
中显示的文件是什么?函数
get_int
在哪里定义?
-lcs50
看起来不错,但您必须构建并安装cs50库,并确保找到正确的include文件和库。这可能涉及
-I
-L
标志来扩展包含文件和库文件的搜索路径。这不仅仅是库的问题。还有一个编译器警告,指出
get\u int
的声明丢失。通常使用
而不是
“cs50.h”
包含
cs50.h
。您的文件夹中有自己的标题吗?CS50函数的名称曾经是,
GetInt()
等等。它们在几年前发生了变化。您是否查看了
cs50.h
文件以检查其中是否声明了
get_int()
?很高兴问题得到了解决。您可能希望与CS50管理员联系,让他们知道镜像站点的源代码版本已经过时(或者至少有一个已经过时)。如果你知道你从哪个网站下载,那就更好了。而且,我必须承认,我很惊讶这就是问题所在——但你似乎做得基本正确,因此值得一问。很高兴问题解决了。您可能希望与CS50管理员联系,让他们知道镜像站点的源代码版本已经过时(或者至少有一个已经过时)。如果你知道你从哪个网站下载,那就更好了。而且,我必须承认,我很惊讶这就是问题所在——但你似乎做得基本正确,所以值得一问。
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