小编The*_*ess的帖子

使用信号量的未定义参考问题

我正在使用信号量,但我一直遇到未定义的参考警告,从而导致我的代码无法工作.我从文本中提取了示例代码,但是他们遇到了一些语法问题,所以我去了POSIX的信号量教程并改变了它们的语法,结果我现在得到了这些引用错误.

我可能只是忽略了一些东西,但我找不到它.

错误:

Producers_Consumers.c:52: warning: return type of ‘main’ is not ‘int’
/tmp/cceeOM6F.o: In function `producer':
Producers_Consumers.c:(.text+0x1e): undefined reference to `sem_init'
Producers_Consumers.c:(.text+0x3a): undefined reference to `sem_init'
Producers_Consumers.c:(.text+0x46): undefined reference to `sem_wait'
Producers_Consumers.c:(.text+0x52): undefined reference to `sem_wait'
Producers_Consumers.c:(.text+0x5e): undefined reference to `sem_post'
Producers_Consumers.c:(.text+0x6a): undefined reference to `sem_post'
/tmp/cceeOM6F.o: In function `consumer':
Producers_Consumers.c:(.text+0x7e): undefined reference to `sem_wait'
Producers_Consumers.c:(.text+0x8a): undefined reference to `sem_wait'
Producers_Consumers.c:(.text+0x96): undefined reference to `sem_post'
Producers_Consumers.c:(.text+0xa2): undefined reference to `sem_post'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

我有什么(由于我从旧方法中评论出来的方式,它可能看起来有点难看)我也知道我的添加方法不起作用,但是当我修复语法问题时我会做到这一点:

#include <stdio.h>
#include …
Run Code Online (Sandbox Code Playgroud)

c semaphore undefined-reference

10
推荐指数
1
解决办法
4万
查看次数

在Bash脚本中处理gcc警告和输出

因此,我是整个Bash脚本编制领域的新手,但是我正在开发一个脚本,用于编译目录中的所有.c文件,并通过以下操作成功完成了该操作:

    for F in *.c; do
      gcc -c -Wall -o ${F%.c} $F
    done
Run Code Online (Sandbox Code Playgroud)

一切正常,但我希望输出看起来像:

ex1.c Errors
ex2.c OK
ex3.c Warnings
Run Code Online (Sandbox Code Playgroud)

因此,基本上我想对“ Ok”设置退出状态为0(一切正常),对“ Warnings”设置退出状态为1(警告,但没有错误),对“ Errors”设置退出状态2(未编译)。

我很难弄清楚该怎么做。我到处搜寻,找不到任何有用的资讯。我完全可以忽略一些东西。

编辑:无论如何都会说:如果gcc -Wall file.c有错误,则只说Error而不是完整的GCC错误处理消息?与警告相同并且可以完美编译吗?

c bash shell

2
推荐指数
1
解决办法
1522
查看次数

即使已初始化,也会出现"可变数据未初始化"错误

我有一段时间没有碰过Java,所以我对一些细节有点生疏.

我试图从一个充满数字的文件中读取所有自己的行.文件中的第一个数字告诉我文件中有多少其他数字,所以我可以适当调整我的数组大小.我试图获取这些数字,并将它们放在一个int数组中,但我在return语句中不断收到"错误:可变数据可能尚未初始化".我知道这必须是简单的事情,但我不能为我的生活找出我做错的简单事情.

public static int[] numbers(String filename)
{
    int[] data;

    try
    {
        FileReader input = new FileReader(filename);
        BufferedReader buffer = new BufferedReader(input);

        int arraySize = Integer.parseInt(buffer.readLine());
        data = new int[arraySize];

        for (int x = 0; x < arraySize; x++)
        {
            data[x] = Integer.parseInt(buffer.readLine());
        }

        buffer.close();
    }

    catch(Exception e)
    {
        System.out.println("Error reading: "+e.getMessage());
    }

    return data;
}
Run Code Online (Sandbox Code Playgroud)

java arrays filereader

1
推荐指数
1
解决办法
382
查看次数

标签 统计

c ×2

arrays ×1

bash ×1

filereader ×1

java ×1

semaphore ×1

shell ×1

undefined-reference ×1