小编Joh*_*kew的帖子

/ usr/bin/ld找不到-lbsd

这是我尝试从Unix环境中的高级编程一书中编写apue.3e源代码时得到的错误.

/lib -lapue -pthread -lrt -lbsd
/usr/bin/ld: cannot find -lbsd
collect2: error: ld returned 1 exit status
make[1]: *** [badexit2] Error 1
make[1]: Leaving directory `/home/john/Documents/apue.3e/threads'
make: *** [all] Error 1
Run Code Online (Sandbox Code Playgroud)

我看过类似的错误,似乎都缺少文件的符号链接,但我无法弄清楚是什么-lbsd.当我尝试将目录更改为/usr/bin/ld它时,它不存在.被-lbsd认为是该目录中的抑或是ld只是无法找到它?我试图避免在这里发布愚蠢的问题,但我不能忍受再坚持这个问题了.任何帮助是极大的赞赏.

c makefile

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

为什么这个基于范围的 for 循环会导致减法问题?

我遇到了基于范围的 for 循环的问题,导致我的值变为负数,我已经使用常规 for 循环解决了该问题,但想了解它为什么一开始就搞砸了。您可以从下面的示例输出中看到初始值正确存在,但是当尝试从它们中减去时,它们被重置为默认的初始化值 0 我猜?

损坏的代码:

#include <iostream>
#include <vector> 

#define IS_TRUE(x) { if (!(x)) std::cout << __FUNCTION__ << " failed on line " << __LINE__ << std::endl; }

int maximumScore(std::vector<int>& nums, std::vector<int>& multipliers) {

    std::vector<int> multRank;
    multRank.resize(multipliers.size());
    
    std::cout << "multRank: ";
//ISSUE IS IN THE LOOP BELOW
    for (int n : multRank) {
        n = multipliers.size();
        std::cout << " " << n;
    }
    std::cout << std::endl;
    for (auto i = 0; i < multipliers.size(); ++i) {
        for …
Run Code Online (Sandbox Code Playgroud)

c++

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

标签 统计

c ×1

c++ ×1

makefile ×1