【问题标题】:Function 'strlen' could not be resolved - Eclipse cpp函数“strlen”无法解析 - Eclipse cpp
【发布时间】:2016-05-29 11:14:47
【问题描述】:

我是 Ecplipse 的 cpp 新手,我遇到了很多问题。

已修复:1) 开始时默认没有包含文件夹。

未打包 Eclipse 的 zip,但它没有库(或包含),所以我使用包含文件夹的 DEV 设置“路径和符号”(安装了 MinGW 并包含它们)。 这样做,我解决了包含问题。

未修复:2) “无法解析函数‘strlen’”

未修复 3) “在 PATH 中找不到程序“g++”(也是 gcc)”
我使用以下 bin 设置了 PATH:dev、mingw 和 mingw/msys 文件夹......但没有用

#include <iostream>
#include <stdlib.h>
#include "D:\Documenti\funz.cpp"
#include "D:\Documenti\winfunz.cpp"
using namespace std;

typedef char Elem;
struct Node{
    int id;
    Elem * val;
    Node* prev;
    Node* next;
};
typedef Node* List;

class Fifo{

List l;

public:
    Fifo(){
    l=NULL[enter image description here][1]; 
    }
    void insert(List &l, Elem *val, int id){

        Node *n;
        int riemp=strlen(val);
        n=new Node;
        n->val=new char[riemp+1];
        n->id=id;
        strcpy(n->val, val); // equivale a (*n).val=val;

        n->next=NULL;//a prescindere è NULL
        if (l==NULL){//se è il primo elemento
            n->prev=NULL;
            l=n;
        }
        else
            if (l->next==NULL){//se è il secondo elemento
                l->next=n;
                l->prev=n;
                n->prev=l->prev;
            }
            else {
                (l->prev)->next=n;
                n->prev=l->prev;
                l->prev=n;
            }
    }

    Node* search(List l, int id){

        while (l!=NULL && l->id!=id)
            l=l->next;
        return l;
    }

    void delete_node(List & l, Node* n){
        short int deltype=0;
        if (n->next==NULL && n->prev!=l) deltype=1;//se è l'ultimo elemento
        if (n->next==NULL && n->prev==l) deltype=2;//se è il secondo elemento
        if (n->next==NULL && n==l) deltype=3;//se l'unico elemento
        if (n->next!=NULL && n==l) deltype=4;//se solo il primo elemento vine eliminato

        switch (deltype){

        case 1:
            l->prev=n->prev;
            (n->prev)->next=NULL;
            break;

        case 2:
            l->prev=NULL;
            l->next=NULL;
            break;

        case 3:
            l=NULL;
            break;

        case 4:
            if (l->prev==l->next)//se sono solo gli ultimi due e il boss viene eliminato
            (l->next)->prev=NULL;
            else
                (l->next)->prev=l->prev;
            l=l->next;
            break;

        default://se è un elemento non primo e non ultimo && la lista ha elementi>2
            (n->prev)->next=n->next;
            (n->next)->prev=n->prev;
        }
        delete[] n->val;
        delete n;
    }
    void print(List l){
        if (l==NULL) cout<<"\nLista vuota\n";
        int tmp;
        char num[3+1] ;
        while (l!=NULL){
            tmp=l->id;
            if(tmp<10) strcpy(num, strcat("00", MioNS::conv_num_numchar(tmp)));
            else if(tmp<100) strcpy(num, strcat("0", MioNS::conv_num_numchar(tmp)));
            else strcpy(num, MioNS::conv_num_numchar(tmp));
            cout<<num<<":"<<l->val<<endl;
            l=l->next;
        }
        cout<<'\n';
    }

    void init_list(List & l){
        l=NULL;
    }
    void delete_list(List & l){
        Node* n;
        while (l!=NULL){
            n=l;
            l=l->next;
            delete[] n->val;
            delete n;
        }               }

    void printfile(List l , ofstream& out){
        int tmp;
        char num[3+1] ;
        while (l!=NULL){
            tmp=l->id;
            if(tmp<10) strcpy(num, strcat("00", MioNS::conv_num_numchar(tmp)));
            else if(tmp<100) strcpy(num, strcat("0", MioNS::conv_num_numchar(tmp)));
            else strcpy(num, MioNS::conv_num_numchar(tmp));
            out<<num<<":"<<l->val<<endl;
            l=l->next;
        }
        out<<'\n';
    }};

希望代码不是问题。

错误

  Description   Resource    Path    Location    Type
    Cannot run program "sh" (in directory "E:\CPP\workspace\Prova1"): CreateProcess error=2, Impossibile trovare il file specificato    Prova1      -1  Configure Problem
    Function 'strcat' could not be resolved Prova1.cpp  /Prova1/src line 102    Semantic Error
    Function 'strcat' could not be resolved Prova1.cpp  /Prova1/src line 103    Semantic Error
    Function 'strcat' could not be resolved Prova1.cpp  /Prova1/src line 128    Semantic Error
    Function 'strcat' could not be resolved Prova1.cpp  /Prova1/src line 129    Semantic Error
    Function 'strcpy' could not be resolved Prova1.cpp  /Prova1/src line 31 Semantic Error
    Function 'strcpy' could not be resolved Prova1.cpp  /Prova1/src line 102    Semantic Error
    Function 'strcpy' could not be resolved Prova1.cpp  /Prova1/src line 103    Semantic Error
    Function 'strcpy' could not be resolved Prova1.cpp  /Prova1/src line 104    Semantic Error
    Function 'strcpy' could not be resolved Prova1.cpp  /Prova1/src line 128    Semantic Error
    Function 'strcpy' could not be resolved Prova1.cpp  /Prova1/src line 129    Semantic Error
    Function 'strcpy' could not be resolved Prova1.cpp  /Prova1/src line 130    Semantic Error
    Function 'strlen' could not be resolved Prova1.cpp  /Prova1/src line 27 Semantic Error
    Program "g++" not found in PATH         Preferences, C++/Build/Settings/Discovery, [CDT GCC Built-in Compiler Settings] options C/C++ Scanner Discovery Problem
    Program "gcc" not found in PATH         Preferences, C++/Build/Settings/Discovery, [CDT GCC Built-in Compiler Settings] options C/C++ Scanner Discovery Problem

【问题讨论】:

    标签: c++ eclipse gcc g++


    【解决方案1】:

    对于问题 2:

    要使用 strcpy、strlen 等函数,您必须包含字符串头文件。

    #include<string.h>
    

    #include<cstring>
    

    对于问题 3:

    您可以参考这些链接。

    Eclipse C++ : "Program "g++" not found in PATH"

    http://www.eclipse.org/forums/index.php/t/697857/

    希望这会有所帮助。

    【讨论】:

    • - 修复了 g++/gcc 问题----------- - #include 不是问题,因为它在其他包括中是有限的。------------------------ - 当我尝试运行(出现错误)时,Eclipse 没有找到 make .exe 所以我在 windows->preferences->*.... ---现在我仍然有 2 个问题:缺少字符串库和控制台中:“make: *** No targets specified and no makefile found. Stop.”
    猜你喜欢
    • 2013-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-06
    • 2018-01-27
    • 2013-09-29
    • 2014-04-01
    相关资源
    最近更新 更多