linux中的源代码编译

Posted

技术标签:

【中文标题】linux中的源代码编译【英文标题】:sourcecode compilation in linux 【发布时间】:2013-11-17 22:35:32 【问题描述】:

我无法在 centos 6.4 linux 中编译 Verilog2C++ 的源代码。请从这里下载源代码。下载非常简单。

http://verilog2cpp.sourceforge.net/

运行 make 命令时出现以下错误

verilog.l:435: error: 'assert' was not declared in this scope

当我注释掉所有断言语句时。我遇到了这些我无法修复的错误

Verilog.cc: In constructor 'moe::Verilog::Number::Number(const char*)':
Verilog.cc:224: error: invalid conversion from 'const char*' to 'char*'
Verilog.cc:230: error: invalid conversion from 'const char*' to 'char*'
Verilog.cc:245: error: invalid conversion from 'const char*' to 'char*'

下面是 Verilog.cc 文件中的代码 sn-p

  Verilog::Number::Number(const char* text):
    text_(text)
  
    static const char* BIN_NUM ="01XZ";
    static const char* OCT_NUM ="01234567XZ";
    static const char* HEX_NUM ="0123456789ABCDEFXZ";

    vector<char> bits;
    const char* ptr;

    ...

    char* idx;
    ptr =text+strlen(text)-1;
    for( ;*ptr!='\'';ptr-- )
      
        switch( base )
          
          case 2:
            idx =index(BIN_NUM,toupper(*ptr)); //THIS LINE CAUSES ERROR
            if( idx!=NULL )
              if( bits.size()<width )
                bits.push_back( *idx );

由于缺乏 C/C++ 知识,我无法解决此问题

你能帮我编译并成功运行程序吗?

【问题讨论】:

"请从这里下载源代码" 不,谢谢。 感谢您的中毒评论 我的评论影响了没有人阅读这个问题。他们将决定是否下载该代码。另一方面,这个问题只不过是要求我们为我们没有创建的产品提供最终用户支持。您可能会想,“但有人可能知道答案并想提供帮助。”这并没有使这个问题变得不那么离题。 如果你不能说什么好话,保持沉默不是一个坏选择。这不是评论论坛。只鼓励建设性的批评,而不是主观意见 通过批评一个离题的问题,我确实说了一些好话。它只是碰巧不符合的最佳利益。而且这个问题离题不是我的观点——这是本网站FAQs中反映的事实。 【参考方案1】:

问题通过在旧机器上用旧版本的 gcc 编译代码,然后将可执行文件带到新机器上来解决。它工作得很好。

感谢克劳迪奥的提示。

【讨论】:

【参考方案2】:

似乎代码有问题,所以新的编译器拒绝编译它。

编辑代码并使用

const_cast<char*> (variablename)

删除变量的常量。

【讨论】:

你能解释更多,或许可以举个例子?感谢您的回复

以上是关于linux中的源代码编译的主要内容,如果未能解决你的问题,请参考以下文章

Linux 编译安装源代码包

在 Linux 中编译 windows Qt 代码和库中的更改

在原生代码编译时找出 AOSP 中的 Android 版本?

如何使用 Visual Studio 2017 Linux 支持编译和构建 C++17 代码?

Linux33_编译源代码,configure和prefix的概念

linux中的centos中的http安装过程