Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 奇怪的ld错误_C++_Gcc - Fatal编程技术网

C++ 奇怪的ld错误

C++ 奇怪的ld错误,c++,gcc,C++,Gcc,我有以下情况。我已经编写了一个库(libA),其中包含一些助手类和一个依赖于该库的应用程序(app)。在应用程序的一个cpp文件中,我从libA调用一个函数,其形式如下: int computeSomething(int param) { int val; // Call to an internal libA function. val = computeInternal(param); return val; } 在构建我的应用程序的过程中,我收到一个

我有以下情况。我已经编写了一个库(libA),其中包含一些助手类和一个依赖于该库的应用程序(app)。在应用程序的一个cpp文件中,我从libA调用一个函数,其形式如下:

int computeSomething(int param)
{

    int val;

    // Call to an internal libA function.
    val = computeInternal(param);

    return val;
}

在构建我的应用程序的过程中,我收到一个链接错误“未定义对computeInternal的引用”,这导致出现以下错误消息“collect2:error:ld returned 1 exit status”。有人知道为什么链接器需要对内部libA函数的引用吗


更有趣的是,我的应用程序是使用Microsoft工具成功构建的。

您是否链接到了您的库?(即gcc-Lyourlibpath-lyourlibname)您是否可以添加用于构建应用程序的命令,以及Makefile的内容(如果您使用make)?您需要包括链接器命令行和产生的错误消息。“有人知道链接器为什么需要引用内部libA函数吗?”-否则它怎么知道链接什么?您必须将所有对象文件链接在一起。此外,这表明您显然不知道编译和链接的用途。谷歌“C++编译过程”。此外,这与Microsoft工具无关。只是您没有将所有文件链接在一起,而您的特定于Microsoft的IDE自动做到了这一点。原则上,我使用以下命令构建我的应用程序:g++-c-IincludePathofLibA-o app.o app.cpp,然后是g++-o app.o-LlibraryPath-llibName