小编Max*_*ien的帖子

找不到GLIBCXX_3.4.9

我有一个关于libstdc ++的问题.所以.

我安装了新版本的gcc并尝试编译c ++代码.编译工作,但当我尝试执行二进制文件(m5.opt是它的名字)时,我遇到以下错误:build/ALPHA_SE/m5.opt:/usr/lib64/libstdc++.so.6:version`GLIBCXX_3找不到.4.9'(build/ALPHA_SE/m5.opt要求).

我需要替换libstdc ++.所以?如果是这样,我在哪里可以下载我想要的版本?在GCC网站上,他们说libstdc ++现在是gcc的一部分.

我希望有人可以帮助我!我现在只在Linux上工作了4个月,所以对我来说一切都很新.

马克斯

细节

海湾合作委员会:
我之前有过gcc 4.1.2,但是我下载了gcc 4.2.4.从untarred gcc-directory我执行"./configure"; "使"; "sudo make install".当我尝试使用gcc或g ++进行编译时,它的默认版本仍为4.1.2.为了解决这个问题,我更换了一些链接:
mv/usr/bin/gcc/usr/bin/gcc_bak
ln -s/usr/local/bin/gcc gcc
mv/usr/bin/g ++/usr/bin/g ++ _ bak
ln -s/usr/local/bin/g ++ g ++

GLIBC(++) - libstdc ++: / usr/lib64/libstdc + +.so.6
- > libstdc ++.so.6.0.8
/usr/local/lib/libstdc++.so - > libstdc ++.so.6.0.9
/ lib/libc.so.6 - > libc-2.5.so - > libc-2.5.so

Linux版本:
uname -a给出:Linux madmax 2.6.18-128.4.1.el5#1 SMP Tue Aug 4 12:51:10 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux

gcc glibc libstdc++

22
推荐指数
3
解决办法
6万
查看次数

结构中的动态内存

我正在编辑一段代码,这是一个大项目的一部分,它使用"const"来初始化一堆数组.因为我想参数化这些const,我必须调整代码以使用"malloc"来分配内存.不幸的是结构有问题:我无法在结构本身中分配动态内存.在外面执行会导致对原始代码进行大量修改.

这是一个小例子:

int globalx,globaly;
struct bigStruct{
    struct subStruct{
            double info1;
            double info2;
            bool valid;
    };
    double data;

    //subStruct bar[globalx][globaly];
    subStruct ** bar=(subStruct**)malloc(globalx*sizeof(subStruct*));
    for(int i=0;i<globalx;i++)
            bar[i]=(*subStruct)malloc(globaly*sizeof(subStruct));


};
int main(){
    globalx=2;
    globaly=3;
    bigStruct foo;
    for(int i=0;i<globalx;i++)
            for(int j=0;j<globaly;j++){
                    foo.bar[i][j].info1=i+j;
                    foo.bar[i][j].info2=i*j;
                    foo.bar[i][j].valid=(i==j);
            }

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

注意:在程序代码中,我正在编辑globalx,而globaly是指定命名空间中的const.现在我删除了"const",这样它们就可以作为一次设置的参数.

总结:如何为结构内的子结构正确分配内存?非常感谢你!

马克斯

c malloc struct const

5
推荐指数
2
解决办法
1166
查看次数

C 库的 C++ 包装器

最近我发现了一个我想在我的 C++ 项目中使用的 C 库。该代码配置了全局变量,并将其输出写入静态指针指向的内存。当我执行我的项目时,我希望运行 2 个 C 程序实例:一个具有配置 A,一个具有配置 B。我不能运行我的程序两次,所以我认为有 2 个选项:

  • 创建一个C++ 包装器:这里的问题是包装器类应该包含 C 库拥有的所有全局/静态变量。由于 C 库中的函数使用这些变量,我必须为这些函数创建非常大的参数列表。
  • 复制粘贴C 库:在这里,我必须调整 C 库中每个函数和每个变量的名称。

哪一种是最快的解决方案?是否有其他可能性来运行同一 C 源代码的 2 个实例?

谢谢,

最大限度

c c++ global-variables static-variables wrapper

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

标签 统计

c ×2

c++ ×1

const ×1

gcc ×1

glibc ×1

global-variables ×1

libstdc++ ×1

malloc ×1

static-variables ×1

struct ×1

wrapper ×1