gcc-警告:函数的隐式声明';获取整型';
我正在学习cs50课程,并决定在我的电脑上运行代码 我有以下代码: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;
#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
链接时,也没有任何效果
我尝试使用以下方法,但它们对我也不起作用:
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