一段代码编译的问题!CCC CLang Visual C++
 #include <string>
#include <iostream>

class Paser
{
    public:

        Paser ( std::string _Command );

        std::string Root ( );
        /**std::string Operator ( );

        std::string Path1 ( );
        std::string Path2 ( );

        std::string Variable ( );**/

    private:

        std::string Command;
        std::string CommandReturn;

        void CommandSync ( );

};

int main()
{
    Paser Paserd ( "move /a/b/c/d /ca/b/cd/" );

    std::cout << Paserd.Root ( ) << '\n';

    return 0;
}


Paser::Paser ( std::string Command )
{
    Paser::Command = Command;
}

std::string Paser::Root ( )
{

    Paser::CommandSync ( );

    if ( Command.empty ( ) )
    {
        throw 1;
    }
    else if ( Command.find ( " " ) == std::string::npos )
    {
        throw 1;
    }
    else 
    {
        return CommandReturn.substr ( 0 , CommandReturn.find ( " " ) );
    }
}

void Paser::CommandSync ( )
{
    CommandReturn = Command;
}

此代码在 Windows下正常编译并可以运行,为何在 Linux下 用 GCC 和 Clang 却链接错误呢?

2个回答

http://codepad.org/PyweSdtd
GCC 4.9.2在线正确编译,输出move

你的配置有问题吧。

链接错误是你的编译器选项中没有包含对应类库,-L选项

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问