error LNK2019: 无法解析的外部符号

一共有三个文件一个是头文件 两个cpp。

//a.h
 #include<iostream>

namespace sales
{
    const int quarters = 4;
    struct  Sales
    {
        double sales[quarters];
        double average;
        double max;
        double min;

    };
    void setsales(Sales & s, const double ar[], int n);
    void setsales(Sales & s);
    void showsales(const Sales & s);
}
 //1.cpp
 #include<iostream>
#include"a.h"
int main()
{
    using namespace sales;
    Sales s1,s2;
    double sz[] = { 1,2,3 };
    setsales(s1, sz, 3);
    for (int i = 0; i < 4; i++)
    {
        printf("Enter number#%d:", i + 1);
        std::cin >> s2.sales[i];
    }
    setsales(s2);
    showsales(s1);
    showsales(s2);
    system("pause");
    return 0;
}
ales.cpp
 #include<iostream>
#include<string>
#include"a.h"
using namespace sales;
void setsales(Sales & s, const double ar[], int n)
{
    for(int i=0;i<n;i++)
    {
        s.sales[i] = ar[i];
    }
    double sum=0;
    s.max = s.sales[0];
    s.min = s.sales[0];
    for (int j = 0; j < n; j++)
    {
        s.max = s.max < s.sales[j] ? s.sales[j] : s.max;
        s.min = s.min < s.sales[j] ? s.sales[j] : s.min;
        sum += s.sales[j];
    }
    s.average = sum / n;
    if (n<4)
    {
        for (int i = n; i < 4; i++)
            s.sales[i] = 0;
    }
}
void setsales(Sales & s) 
{

        double sum = 0;
        s.max = s.sales[0];
        s.min = s.sales[0];
        for (int j = 0; j < 4; j++)
        {
            s.max = s.max < s.sales[j] ? s.sales[j] : s.max;
            s.min = s.min < s.sales[j] ? s.sales[j] : s.min;
            sum += s.sales[j];
        }
        s.average = sum / 4;

}
void showsales(const Sales & s) 
{
    using std::cout;
    using std::cin;
    using std::endl;
    for (int i = 0; i <4; i++)
    {
        cout << s.sales[i] << " ";
    }
    cout << endl << "AVERAGE:" << s.average<<endl;
    cout << "MAX:" << s.max << endl;
    cout << "MIN:" << s.min << endl;

}

三个文件都在同一文件夹下,不知为何会报错
1>1.obj : error LNK2019: 无法解析的外部符号 "void __cdecl sales::setsales(struct sales::Sales &,double const * const,int)" (?setsales@sales@@YAXAAUSales@1@QBNH@Z),该符号在函数 _main 中被引用
1>1.obj : error LNK2019: 无法解析的外部符号 "void __cdecl sales::setsales(struct sales::Sales &)" (?setsales@sales@@YAXAAUSales@1@@Z),该符号在函数 _main 中被引用
1>1.obj : error LNK2019: 无法解析的外部符号 "void __cdecl sales::showsales(struct sales::Sales const &)" (?showsales@sales@@YAXABUSales@1@@Z),该符号在函数 _main 中被引用
1>D:\Documents\Visual Studio 2015\Projects\Win32Project4\Debug\Win32Project4.exe : fatal error LNK1120: 3 个无法解析的外部命令

2个回答

最近用VS2005编译一个以前VC6的项目,解决掉一些小问题后,出现如下的问题:
错误 3 error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: static struct CRuntimeClass * stdcall G3D::C3DView::GetThisClass(void)" (imp_?GetThisClass@C3......
答案就在这里:error LNK2019: 无法解析的外部符号
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

你的ales.cpp中对a.h中方法的实现缺少命名空间sales的限定,导致main函数在调用的时候无法sales名称空间中找到setsales等方法的实现。
ales.cpp
#include
#include
#include"a.h"
namespace sales-----------
{---------
void setsales(Sales & s, const double ar[], int n)
{
for(int i=0;i<n;i++)
{
s.sales[i] = ar[i];
}
double sum=0;
s.max = s.sales[0];
s.min = s.sales[0];
for (int j = 0; j < n; j++)
{
s.max = s.max < s.sales[j] ? s.sales[j] : s.max;
s.min = s.min < s.sales[j] ? s.sales[j] : s.min;
sum += s.sales[j];
}
s.average = sum / n;
if (n<4)
{
for (int i = n; i < 4; i++)
s.sales[i] = 0;
}
}
void setsales(Sales & s)
{

                double sum = 0;
                s.max = s.sales[0];
                s.min = s.sales[0];
                for (int j = 0; j < 4; j++)
                {
                        s.max = s.max < s.sales[j] ? s.sales[j] : s.max;
                        s.min = s.min < s.sales[j] ? s.sales[j] : s.min;
                        sum += s.sales[j];
                }
                s.average = sum / 4;

}
void showsales(const Sales & s) 
{
        using std::cout;
        using std::cin;
        using std::endl;
        for (int i = 0; i <4; i++)
        {
                cout << s.sales[i] << " ";
        }
        cout << endl << "AVERAGE:" << s.average<<endl;
        cout << "MAX:" << s.max << endl;
        cout << "MIN:" << s.min << endl;

}

}------

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
error LNK2019: 无法解析的外部符号 __imp__RoInitialize@4
在VS2017里面写Qt5.9.2的项目,创建了一个新的Qt GUI 的项目, 但是却发现有一个关于怀疑.lib有关的问题。 具体错误如下: 1>qtmaind.lib(qtmain_winrt.obj) : error LNK2019: 无法解析的外部符号 __imp__RoInitialize@4,该符号在函数 _WinMain@16 中被引用 1>qtmaind.lib(qtmain_winrt.obj) : error LNK2019: 无法解析的外部符号 __imp__RoGetActivationFactory@12,该符号在函数 "public: __thiscall AppContainer::AppContainer(void)" (??0AppContainer@@QAE@XZ) 中被引用 1>qtmaind.lib(qtmain_winrt.obj) : error LNK2019: 无法解析的外部符号 _WindowsCreateStringReference@16,该符号在函数 "private: void __thiscall Microsoft::WRL::Wrappers::HStringReference::CreateReference(wchar_t const *,unsigned int,unsigned int)" (?CreateReference@HStringReference@Wrappers@WRL@Microsoft@@AAEXPB_WII@Z) 中被引用 1>qtmaind.lib(qtmain_winrt.obj) : error LNK2019: 无法解析的外部符号 _WindowsDeleteString@4,该符号在函数 "public: void __thiscall Microsoft::WRL::Wrappers::HString::Release(void)" (?Release@HString@Wrappers@WRL@Microsoft@@QAEXXZ) 中被引用 1>qtmaind.lib(qtmain_winrt.obj) : error LNK2019: 无法解析的外部符号 _WindowsGetStringRawBuffer@8,该符号在函数 "public: wchar_t const * __thiscall Microsoft::WRL::Wrappers::HString::GetRawBuffer(unsigned int *)const " (?GetRawBuffer@HString@Wrappers@WRL@Microsoft@@QBEPB_WPAI@Z) 中被引用 1>qtmaind.lib(qtmain_winrt.obj) : error LNK2019: 无法解析的外部符号 _RoOriginateError@8,该符号在函数 "public: static void __cdecl Microsoft::WRL::ErrorHelper<0>::OriginateError(long,struct HSTRING__ *)" (?OriginateError@?$ErrorHelper@$0A@@WRL@Microsoft@@SAXJPAUHSTRING__@@@Z) 中被引用 1>D:\New Projects\VS_Project\QtGuiApplication7\Win32\Debug\\QtGuiApplication7.exe : fatal error LNK1120: 6 个无法解析的外部命令 1>已完成生成项目“QtGuiApplication7.vcxproj”的操作 - 失败。 ========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ========== 在这里以其中一条具体的为例子:1>qtmaind.lib(qtmain_winrt.obj) : error LNK2019: 无法解析的外部符号 __imp__RoInitialize@4,该符号在函数 _WinMain@16 中被引用 ## **百度许多文章,发现大部分都是说缺少对应得.lib或者.h的文件, 但是我查看该项目的属性,发现是有qtmaind.lib这个库的,但是问什么还是有错误呢?** ![图片说明](https://img-ask.csdn.net/upload/201711/21/1511253927_913872.png) ![图片说明](https://img-ask.csdn.net/upload/201711/21/1511253940_181810.png) ![图片说明](https://img-ask.csdn.net/upload/201711/21/1511253949_303532.png) 百思不得七姐~~ 有没有大牛可以指点一下》》》
error LNK2019: 无法解析的外部符号
``` template<int x, int y, int z> class Time { public: Time(); void display() { cout << x << y << z << endl; } }; int main() { Time<11,55,47> time; time.display(); Time<2,17,2017> date; date.display(); system("pause"); return 0; } ``` 1>3.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall Time<2,17,2017>::Time<2,17,2017>(void)" (??0?$Time@$01$0BB@$0HOB@@@QAE@XZ),该符号在函数 _main 中被引用 1>3.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall Time<11,55,47>::Time<11,55,47>(void)" (??0?$Time@$0L@$0DH@$0CP@@@QAE@XZ),该符号在函数 _main 中被引用
求救大神们,error LNK2019: 无法解析的外部符号 的问题
我从网上下了个demo,然后新建工程导入了源代码,.h和.lib文件也都安放到位了,运行后报错显示 error LNK2019: 无法解析的外部符号 "public: __thiscall gsound::SoundPropagator::~SoundPropagator(void)" (??1SoundPropagator@gsound@@QAE@XZ),该符号在函数 _main 中被引用 还有很多都是类似的error LNK2019,网上搜了下也试了些网友的办法都没用,所以想请大神们帮看看
vs2010运行程序报错:error LNK2019: 无法解析的外部符号
如题,我在vs2010环境下做C++练习题时出现该错误。程序代码如下: //array.h #ifndef ARRAY_H #define ARRAY_H template<typename T> class Array { public: Array(int n);//数组首地址不用指定,待会分配 Array(Array &a); ~Array(); T getAt(int i);//返回第i个数组元素 void setAt(T x,int i);//将第i个元素设置为x protected: private: T *array;//数组首地址 int length;//数组长度 }; #endif //array.cpp #include "array.h" template<typename T>//所有成员函数前必须加模板声明 Array<T>::Array(int n)//成员函数类名后需加<T> { array=new T[n]; length=n; } template<typename T> Array<T>::Array(Array &a) { length=a.length; array=new T[length]; for(int i=0;i<length;i++) array[i]=a.array[i];//数据复制 } template<typename T> Array<T>::~Array() { delete []array; } template<typename T> T Array<T>::getAt(int i) { return array[i]; } template<typename T> void Array<T>::setAt(T x,int i) { array[i]=x; } //test.cpp #include "array.h" #include <iostream> using namespace std; void main() { int a[]={1,2,3,4,5}; double b[]={0,0.5,1.0,1.5,2.0}; Array <int>a1(5);//使用时必须指明传递给类模板的数据类型 Array <double>b1(5);//必须分两行写 for (int i=0;i<5;i++) { a1.setAt(a[i],i);//数据拷给对象 b1.setAt(b[i],i); } Array <int>a2(a1); for (int i=0;i<5;i++) { cout<<a1.getAt(i)<<" "<<a2.getAt(i)<<" "<<b1.getAt(i)<<endl; } } 具体的报错信息如下: c: __thiscall Array<double>::~Array<double>(void)" (??1?$Array@N@@QAE@XZ),该符号在函数 _main 中被引用 1>test.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall Array<int>::~Array<int>(void)" (??1?$Array@H@@QAE@XZ),该符号在函数 _main 中被引用 1>test.obj : error LNK2019: 无法解析的外部符号 "public: int __thiscall Array<int>::getAt(int)" (?getAt@?$Array@H@@QAEHH@Z),该符号在函数 _main 中被引用 1>test.obj : error LNK2019: 无法解析的外部符号 "public: double __thiscall Array<double>::getAt(int)" (?getAt@?$Array@N@@QAENH@Z),该符号在函数 _main 中被引用 1>test.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall Array<int>::Array<int>(class Array<int> &)" (??0?$Array@H@@QAE@AAV0@@Z),该符号在函数 _main 中被引用 1>test.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall Array<double>::setAt(double,int)" (?setAt@?$Array@N@@QAEXNH@Z),该符号在函数 _main 中被引用 1>test.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall Array<int>::setAt(int,int)" (?setAt@?$Array@H@@QAEXHH@Z),该符号在函数 _main 中被引用 1>test.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall Array<double>::Array<double>(int)" (??0?$Array@N@@QAE@H@Z),该符号在函数 _main 中被引用 1>test.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall Array<int>::Array<int>(int)" (??0?$Array@H@@QAE@H@Z),该符号在函数 _main 中被引用 1>D:\vsprojects\chaper5\array3\Debug\array3.exe : fatal error LNK1120: 9 个无法解析的外部命令 补充:我将上述代码改写到同一个cpp文件中,发现问题解决。 我重新建立过项目和文件,确定不是建错工程、建错文件等情况。望各位给出一些方向,谢谢!
matlab进行mex时出现 error LNK2019: 无法解析的外部符号……
**具体问题是:我想把现有的.cpp文件转成.mexw32的文件,代码没有出现错误,因为前辈曾转出过64位的。** 而且配置应该没问题,因为mex代码中其他.cpp文件是可以做出来的,唯独这个出现以下错误: mex mex_maxflow.cpp 正在创建库 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\MEX_4W~1\templib.x 和对象 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\MEX_4W~1\templib.exp mex_maxflow.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall Graph<double,double,double>::~Graph<double,double,double>(void)" (??1?$Graph@NNN@@QAE@XZ),该符号在函数 "public: void * __thiscall Graph<double,double,double>::`scalar deleting destructor'(unsigned int)" (??_G?$Graph@NNN@@QAEPAXI@Z) 中被引用 mex_maxflow.obj : error LNK2019: 无法解析的外部符号 "private: void __thiscall Graph<double,double,double>::reallocate_nodes(int)" (?reallocate_nodes@?$Graph@NNN@@AAEXH@Z),该符号在函数 "public: int __thiscall Graph<double,double,double>::add_node(int)" (?add_node@?$Graph@NNN@@QAEHH@Z) 中被引用 mex_maxflow.obj : error LNK2019: 无法解析的外部符号 "private: void __thiscall Graph<double,double,double>::reallocate_arcs(void)" (?reallocate_arcs@?$Graph@NNN@@AAEXXZ),该符号在函数 "public: void __thiscall Graph<double,double,double>::add_edge(int,int,double,double)" (?add_edge@?$Graph@NNN@@QAEXHHNN@Z) 中被引用 mex_maxflow.obj : error LNK2019: 无法解析的外部符号 "public: double __thiscall Graph<double,double,double>::maxflow(bool,class Block<int> *)" (?maxflow@?$Graph@NNN@@QAEN_NPAV?$Block@H@@@Z),该符号在函数 _mexFunction 中被引用 mex_maxflow.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall Graph<double,double,double>::Graph<double,double,double>(int,int,void (__cdecl*)(char *))" (??0?$Graph@NNN@@QAE@HHP6AXPAD@Z@Z),该符号在函数 _mexFunction 中被引用 mex_maxflow.mexw32 : fatal error LNK1120: 5 个无法解析的外部命令 E:\MATLAB~3\BIN\MEX.PL: Error: Link of 'mex_maxflow.mexw32' failed. 折腾好久了也没结果,我试着更改文件名也存在错误,查了很多资料有些用vs编译的说是.lib调用问题,不过感觉和matlab进行mex是两回事么?好像是编译的文件引用了mexFuntion中文件,就是上面错误中说到的。请大家帮忙分析一下,不胜感激。仅有的1c币奉上
C++ error LNK2019: 无法解析的外部符号
在看某项目的源码时 发现其使用了第三方的头文件,之后我就去官网下载了。 下载来是压缩文件 里面有一些.c .h之类的文件,我把这些文件都包含在源码中。 然后运行就出现了: error LNK2019: 无法解析的外部符号 _jpeg_std_error,该符号在函数 "unsigned int __cdecl rescaleJPEG(unsigned char *,unsigned int,unsigned char * *,int)" (?rescaleJPEG@@YAIPAEIPAPAEH@Z) 中被引用 jpeg_std_error是第三方文件中定义的 unsigned int __cdecl rescaleJPEG是项目源码中定义的 而且在导入时 也使用了 extern “C” extern "C"{ #include "jpeglib.h" };
VS2010+opencv2.4.10 error LNK2001: 无法解析的外部符号
![图片说明](https://img-ask.csdn.net/upload/201705/16/1494931643_91832.png)1>CameraDS.obj : error LNK2001: 无法解析的外部符号 _cvReleaseImage 1>CameraDS.obj : error LNK2001: 无法解析的外部符号 _cvCreateImage 1>CameraDS.obj : error LNK2001: 无法解析的外部符号 _cvFlip![图片说明](https://img-ask.csdn.net/upload/201705/16/1494932063_459352.png) 1>CvvImage.obj : error LNK2001: 无法解析的外部符号 _cvGetSize 1>CvvImage.obj : error LNK2001: 无法解析的外部符号 _cvConvertImage 1>CvvImage.obj : error LNK2001: 无法解析的外部符号 _cvLoadImage 1>CvvImage.obj : error LNK2001: 无法解析的外部符号 _cvSetImageROI 1>CvvImage.obj : error LNK2001: 无法解析的外部符号 _cvSaveImage 1>CvvImage.obj : error LNK2001: 无法解析的外部符号 _cvShowImage 1>CvvImage.obj : error LNK2001: 无法解析的外部符号 _cvGetImageROI 1>mymfc.obj : error LNK2001: 无法解析的外部符号 _cvDestroyWindow 1>mymfc.obj : error LNK2001: 无法解析的外部符号 _cvReleaseCapture 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 "__declsp![![![![图片说明](https://img-ask.csdn.net/upload/201705/16/1494931732_440893.png)图片说明](https://img-ask.csdn.net/upload/201705/16/1494931633_997993.png)图片说明](https://img-ask.csdn.net/upload/201705/16/1494931500_68171.png)图片说明](https://img-ask.csdn.net/upload/201705/16/1494931362_928728.png)ec(dllimport) public: __thiscall asm_shape::~asm_shape(void)" (__imp_??1asm_shape@@QAE@XZ) 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 _cvReleaseMat 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 "int __cdecl cv::_interlockedExchangeAdd(int *,int)" (?_interlockedExchangeAdd@cv@@YAHPAHH@Z) 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 "public: void __thiscall cv::Mat::copySize(class cv::Mat const &)" (?copySize@Mat@cv@@QAEXABV12@@Z) 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 "void __cdecl cv::fastFree(void *)" (?fastFree@cv@@YAXPAX@Z) 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 "public: __thiscall cv::_OutputArray::_OutputArray(class cv::Mat &)" (??0_OutputArray@cv@@QAE@AAVMat@1@@Z) 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 "public: __thiscall cv::_InputArray::_InputArray(class cv::Mat const &)" (??0_InputArray@cv@@QAE@ABVMat@1@@Z) 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 "public: void __thiscall cv::Mat::deallocate(void)" (?deallocate@Mat@cv@@QAEXXZ) 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 _cvResize 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 _cvResetImageROI 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 _cvWaitKey 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 "public: __thiscall cv::CascadeClassifier::CascadeClassifier(void)" (??0CascadeClassifier@cv@@QAE@XZ) 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 "public: virtual __thiscall cv::CascadeClassifier::~CascadeClassifier(void)" (??1CascadeClassifier@cv@@UAE@XZ) 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 "public: bool __thiscall cv::CascadeClassifier::load(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?load@CascadeClassifier@cv@@QAE_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 "public: __thiscall cv::Mat::Mat(struct _IplImage const *,bool)" (??0Mat@cv@@QAE@PBU_IplImage@@_N@Z) 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 "void __cdecl cv::cvtColor(class cv::_InputArray const &,class cv::_OutputArray const &,int,int)" (?cvtColor@cv@@YAXABV_InputArray@1@ABV_OutputArray@1@HH@Z) 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 "void __cdecl cv::equalizeHist(class cv::_InputArray const &,class cv::_OutputArray const &)" (?equalizeHist@cv@@YAXABV_InputArray@1@ABV_OutputArray@1@@Z) 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall cv::CascadeClassifier::detectMultiScale(class cv::Mat const &,class std::vector<class cv::Rect_<int>,class std::allocator<class cv::Rect_<int> > > &,double,int,int,class cv::Size_<int>,class cv::Size_<int>)" (?detectMultiScale@CascadeClassifier@cv@@UAEXABVMat@2@AAV?$vector@V?$Rect_@H@cv@@V?$allocator@V?$Rect_@H@cv@@@std@@@std@@NHHV?$Size_@H@2@2@Z) 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall asm_shape::asm_shape(void)" (__imp_??0asm_shape@@QAE@XZ) 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall asmfitting::asmfitting(void)" (__imp_??0asmfitting@@QAE@XZ) 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall asmfitting::~asmfitting(void)" (__imp_??1asmfitting@@QAE@XZ) 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: bool __thiscall asmfitting::Read(char const *)" (__imp_?Read@asmfitting@@QAE_NPBD@Z) 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall asm_shape::Resize(int)" (__imp_?Resize@asm_shape@@QAEXH@Z) 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 __imp__InitShapeFromDetBox 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: bool __thiscall asmfitting::ASMSeqSearch(class asm_shape &,struct _IplImage const *,int,bool,int)" (__imp_?ASMSeqSearch@asmfitting@@QAE_NAAVasm_shape@@PBU_IplImage@@H_NH@Z) 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 _cvNamedWindow 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 _cvResizeWindow 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 _cvGetWindowHandle 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 _cvSetZero 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 _cvCloneImage 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 _cvRectangle 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 _cvCircle 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 _cvCreateMat 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 _cvGEMM 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 _cvSVD 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 _cvTrace 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: double const __thiscall asmfitting::GetMeanFaceWidth(void)const " (__imp_?GetMeanFaceWidth@asmfitting@@QBE?BNXZ) 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: class asm_shape const __thiscall asmfitting::GetMappingDetShape(void)const " (__imp_?GetMappingDetShape@asmfitting@@QBE?BVasm_shape@@XZ) 1>mymfcDlg.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: struct Point2D32f & __thiscall asm_shape::operator[](int)" (__imp_??Aasm_shape@@QAEAAUPoint2D32f@@H@Z) ![图片说明](https://img-ask.csdn.net/upload/201705/16/1494931813_739749.png)
opencv报错,error LNK2001:无法解析的外部符号
opencv3.1.0报错,全是各种各样的LNK2001:无法解析的外部符号,求大神解答
VS2010 error LNK2019: 无法解析的外部符号
程序如下: #include <stdlib.h> #include <stdio.h> #include <opencv/cv.h> #include <opencv/highgui.h> #include <opencv2/opencv.hpp> #include <math.h> #include <iostream> #include<opencv2/imgproc/imgproc.hpp> #include <opencv2/core/core.hpp> #include "cuda_runtime.h" #include "device_launch_parameters.h" #include "cuda_runtime.h" #include <assert.h> #include <cufft.h> #include "ImgPro_cu.cU" using namespace std; using namespace cv; extern "C" double cudaMSR_RGB( BYTE* pImgOut, BYTE* pImgIn, int nWidth, int nHeight, int nWidthStep) { int FilterWidth = nWidth; int FilterHeight = nHeight; float sigma = 300; int DataBits = 8; int fftW = nWidth; int fftH = nHeight; float *h_pDataSrcRGB = NULL; float *h_pDataDst= NULL; float *h_pKernel= NULL; float *d_Kernel= NULL; float *d_DataSrc= NULL; float *d_DataDst= NULL; fComplex *d_DataSpectrum; fComplex *d_KernelSpectrum; h_pDataSrcRGB = (float*)malloc(nWidth*nHeight*sizeof(float)); h_pDataDst = (float*)malloc(nWidth*nHeight*sizeof(float)); h_pKernel = (float*)malloc(FilterWidth*FilterHeight*sizeof(float)); cudaMalloc((void **)&d_Kernel, FilterWidth*FilterHeight*sizeof(float)); cudaMalloc((void **)&d_DataSrc,nWidth*nHeight*sizeof(float) ); cudaMalloc((void **)&d_DataDst,nWidth*nHeight*sizeof(float) ); cudaMalloc((void **)&d_DataSpectrum , fftH*(fftW/2+1)*sizeof(fComplex) ); cudaMalloc((void **)&d_KernelSpectrum, fftH*(fftW/2+1)*sizeof(fComplex) ); memset(h_pDataSrcRGB,0,nWidth*nHeight*sizeof(float)); memset(h_pDataDst, 0, nWidth*nHeight*sizeof(float)); memset(h_pKernel , 0, FilterWidth*FilterHeight*sizeof(float)); cudaMemset(d_Kernel, 0, FilterWidth*FilterHeight*sizeof(float)); cudaMemset(d_DataSrc, 0, nWidth*nHeight*sizeof(float)); cudaMemset(d_DataDst, 0, nWidth*nHeight*sizeof(float)); cudaMemset(d_DataSpectrum , 0, fftH*(fftW/2+1)*sizeof(fComplex)); cudaMemset(d_KernelSpectrum, 0, fftH*(fftW/2+1)*sizeof(fComplex)); //产生高斯滤波器 GaussFilter(h_pKernel, sigma, FilterWidth, FilterHeight); //定义傅里叶变换 cufftHandle fftPlanFwd, fftPlanInv; cufftPlan2d(&fftPlanFwd, nHeight, nWidth, CUFFT_R2C); cufftPlan2d(&fftPlanInv, nHeight, nWidth, CUFFT_C2R); //计时开始 clock_t start, finish; double dDuration = 0.0; start = clock(); for (int i_Channel = 1;i_Channel<=3;i_Channel++) { for (int y = 0; y < nHeight; y++) { for (int x=0;x<nWidth;x++) { h_pDataSrcRGB[y * nWidth + x ] = pImgIn[y * nWidthStep + 3*x + i_Channel];//RGB三个通道 } } cudaMemcpy(d_DataSrc, h_pDataSrcRGB, nWidth*nHeight*sizeof(float), cudaMemcpyHostToDevice); cudaMemcpy(d_Kernel, h_pKernel, nWidth*nHeight*sizeof(float), cudaMemcpyHostToDevice); //执行傅里叶正变换 cufftExecR2C(fftPlanFwd, d_DataSrc, (cufftComplex *)d_DataSpectrum); cufftExecR2C(fftPlanFwd, d_Kernel , (cufftComplex *)d_KernelSpectrum); //频域数据点乘 modulateAndNormalize(d_DataSpectrum, d_KernelSpectrum, fftH, fftW); //执行傅里叶逆变换 cufftExecC2R(fftPlanInv, (cufftComplex *)d_DataSpectrum, d_DataDst); //图像高频增强 High_Frequency_Enhancer(d_DataDst, d_DataSrc, nWidth, nHeight); //图像灰度拉伸映射 cudaMemcpy(d_DataSrc, d_DataDst, nWidth*nHeight*sizeof(float), cudaMemcpyDeviceToDevice); float Vmax = GetMaxValue(d_DataSrc, nWidth*nHeight); cudaMemcpy(d_DataSrc, d_DataDst, nWidth*nHeight*sizeof(float), cudaMemcpyDeviceToDevice); float Vmin = GetMinValue(d_DataSrc, nWidth*nHeight); GrayReset(d_DataDst, d_DataDst, nWidth, nHeight, Vmax, Vmin, DataBits); cudaMemcpy(h_pDataDst, d_DataDst, nWidth*nHeight*sizeof(float), cudaMemcpyDeviceToHost); for (int x=0;x<nWidth*nHeight;x++) { pImgOut[3*x+i_Channel] = h_pDataDst[x] ;//RGB三个通道 } } //计时结束 finish = clock(); dDuration = (double)(finish - start) / CLOCKS_PER_SEC; cufftDestroy(fftPlanFwd); cufftDestroy(fftPlanInv); free(h_pDataSrcRGB); free(h_pDataDst); free(h_pKernel); cudaFree(d_DataSrc); cudaFree(d_DataDst); cudaFree(d_Kernel); cudaFree(d_DataSpectrum); cudaFree(d_KernelSpectrum); return dDuration; } int main() { IplImage *src = cvLoadImage("22.jpg"); IplImage *dst = cvCloneImage( src ); BYTE* srcdata = (BYTE *) src->imageData; int nWidth = src->width; int nHeight = src->height; int nWidthStep = src->widthStep; BYTE* dstdata = (BYTE *) dst->imageData; cudaMSR_RGB(srcdata, dstdata,nWidth,nHeight,nWidthStep); cvNamedWindow("原画",0); cvShowImage("原画",src); cvNamedWindow("色彩还原",0); cvShowImage("色彩还原",dst); cvWaitKey(0); cvDestroyAllWindows(); cvReleaseImage(&src); } 运行后显示如下: 1>Laplacian.cu.obj : error LNK2019: 无法解析的外部符号 _cufftDestroy@4,该符号在函数 "void __cdecl ConvolutionFFT(float *,float *,float *,int,int,int,int)" (?ConvolutionFFT@@YAXPAM00HHHH@Z) 中被引用 1>Laplacian.cu.obj : error LNK2019: 无法解析的外部符号 _cufftExecC2R@12,该符号在函数 "void __cdecl ConvolutionFFT(float *,float *,float *,int,int,int,int)" (?ConvolutionFFT@@YAXPAM00HHHH@Z) 中被引用 1>Laplacian.cu.obj : error LNK2019: 无法解析的外部符号 _cufftExecR2C@12,该符号在函数 "void __cdecl ConvolutionFFT(float *,float *,float *,int,int,int,int)" (?ConvolutionFFT@@YAXPAM00HHHH@Z) 中被引用 1>Laplacian.cu.obj : error LNK2019: 无法解析的外部符号 _cufftPlan2d@16,该符号在函数 "void __cdecl ConvolutionFFT(float *,float *,float *,int,int,int,int)" (?ConvolutionFFT@@YAXPAM00HHHH@Z) 中被引用 1>C:\Users\Xu\Desktop\Laplacian\Vibe\Debug\Laplacian.exe : fatal error LNK1120: 4 个无法解析的外部命令 求问大神怎么解决这个问题。万分感谢
1>Generic.obj : error LNK2019: 无法解析的外部符号
**//Generic.cpp** #include <windows.h> // 每一个 Windows 程序都需要包含此档 #include "resource.h" // 內含各个 resource IDs #include "Generic.h" // 本程序之含入档 HINSTANCE _hInst; // Instance handle HWND _hWnd; char _szAppName[] = "Generic"; // char _szTitle[] = "Generic Sample Application"; // // WinMain - //--------------------------------------------------------------- int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow) { MSG msg; if (!hPrevInstance) if (!InitApplication(hInstance)) return (FALSE); if (!InitInstance(hInstance, nCmdShow)) return (FALSE); while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return (msg.wParam); // } //--------------------------------------------------------------- // InitApplication - //--------------------------------------------------------------- BOOL InitApplication(HINSTANCE hInstance) { WNDCLASS wc; wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = (WNDPROC)WndProc; // wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground =(HBRUSH) GetStockObject(WHITE_BRUSH); // wc.lpszMenuName = (LPCWSTR)"GenericMenu"; // .RC wc.lpszClassName =(LPCWSTR) _szAppName; return (RegisterClass(&wc)); } //--------------------------------------------------------------- // InitInstance - //--------------------------------------------------------------- BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) { _hInst = hInstance; // _hWnd = CreateWindow( (LPCWSTR)_szAppName, (LPCWSTR)_szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL ); if (!_hWnd) return (FALSE); ShowWindow(_hWnd, nCmdShow); // UpdateWindow(_hWnd); // 送出 WM_PAINT return (TRUE); } **//Generic.h** #include <windows.h> BOOL InitApplication(HANDLE); BOOL InitInstance(HANDLE, int); LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); 生成时发生这样的错误: 1>Generic.obj : error LNK2019: 无法解析的外部符号 "int __cdecl InitInstance(void *,int)" (?InitInstance@@YAHPAXH@Z),该符号在函数 _WinMain@16 中被引用 1>Generic.obj : error LNK2019: 无法解析的外部符号 "int __cdecl InitApplication(void *)" (?InitApplication@@YAHPAX@Z),该符号在函数 _WinMain@16 中被引用 1>C:\Users\Share\Documents\Visual Studio 2010\Projects\firstwindow\Debug\firstwindow.exe : fatal error LNK1120: 2 个无法解析的外部命令 急急急~ 求大神指教。
MSVCRT.lib(exe_main.obj) : error LNK2001: 无法解析的外部符号 main?
当在第三个项目中添加Test.cpp文件时,会出现:“error LNK2001: 无法解析的外部符号 main?”![图片说明](https://img-ask.csdn.net/upload/201810/10/1539137417_54419.png)
VS2013 C++ error LNK2019: 无法解析的外部符号
#include<iostream> #include<fstream> #include<iomanip> using namespace std; #include<stdlib.h> template<class T> class CMatrix { T * * Mat; int nRow; int nCol; public: CMatrix(); CMatrix(int row, int col); CMatrix(int row, int col, int k); void Show(); void InputFromFile(); friend CMatrix<T>operator *(CMatrix<T> &mat1, CMatrix<T> &mat2); }; template<class T> CMatrix<T>::CMatrix() { nRow = 100, nCol = 100; Mat = new T*[100]; for (int i = 0; i<100; i++) { Mat[i] = new T[100]; } } template<class T> CMatrix<T>::CMatrix(int row, int col) { int i, j; nRow = row, nCol = col; Mat = new T*[nRow]; for (i = 0; i<nRow; i++) { Mat[i] = new T[nCol]; } cout << "请输入数据:\n"; for (i = 0; i<nRow; i++) for (j = 0; j<nCol; j++) { cout << "第[" << i + 1 << "][" << j + 1 << "]个数据:"; cin >> Mat[i][j]; } } template<class T> CMatrix<T>::CMatrix(int row, int col, int k) { nRow = row, nCol = col; Mat = new T*[nRow]; for (int i = 0; i<nRow; i++) { Mat[i] = new T[nCol]; } } template<class T> void CMatrix<T>::Show() { int i, j; for (i = 0; i<nRow; i++) { cout << endl; for (j = 0; j<nCol; j++) cout << Mat[i][j] << setw(6); } cout << endl; } template<class T> void CMatrix<T>::InputFromFile() { ifstream infile; infile.open("daijp.txt", ios::_Nocreate); if (!infile) { cout << "输入文件不存在,请先建立输入文件\n"; exit(0); } for (int i = 0; i<nRow; i++) for (int j = 0; j<nCol; j++) { infile >> Mat[i][j]; } infile.close(); } template<class T> CMatrix<T> operator* (CMatrix<T> &mat1, CMatrix<T> &mat2) { CMatrix<T> mat3(mat1.nRow, mat2.nCol, 0); for (int i = 0; i<mat1.nRow; i++) for (int j = 0; j<mat2.nCol; j++) { mat3.Mat[i][j] = 0; for (int k = 0; k<mat1.nCol; k++) mat3.Mat[i][j] += mat1.Mat[i][k] * mat2.Mat[k][j]; } return mat3; } template<class T> void choose1(T) { cout << "1)初始化赋值" << endl << "2)键盘输入" << endl << "3)文件输入" << endl; int srfs; cout << "请选择数据输入方式:\n"; cin >> srfs; switch (srfs) { case 1: { CMatrix<T> mata, matb, matc; }break; case 2: { int a, b, c, d; cout << "请输入第一个矩阵的行数和列数:" << endl; cin >> a >> b; CMatrix<T> mata(a, b); cout << "请输入第二个矩阵的行数和列数:" << endl; cin >> c >> d; if (b != c) { cout << "错误!!!两矩阵不能相乘!!!\n"; break; } CMatrix<T> matb(c, d); CMatrix<T> matc(a, d, 0); mata.Show(); matb.Show(); matc = mata*matb; cout << "两矩阵相乘结果为:\n"; matc.Show(); }break; case 3: { int a, b, c, d; cout << "请输入第一个矩阵的行数和列数:" << endl; cin >> a >> b; CMatrix<T> mata(a, b, 0); cout << "请输入第二个矩阵的行数和列数:" << endl; cin >> c >> d; if (b != c) { cout << "错误!!!两矩阵不能相乘!!!\n"; break; } CMatrix<T> matb(c, d, 0); CMatrix<T> matc(a, d, 0); mata.InputFromFile(); matb.InputFromFile(); mata.Show(); matb.Show(); matc = mata*matb; cout << "两矩阵相乘结果为:\n"; matc.Show(); }break; default:cout << "输入选择错误!!!" << endl; } } void choose() { cout << "作者:周毅" << setw(32) << "学号:140604163" << setw(32) << "专业:软件工程" << endl; cout << endl << "1)整型" << endl << "2)浮点型" << endl << "3)双精度型" << endl; cout << "请选择数据类型:\n"; int sjlx; cin >> sjlx; switch (sjlx) { case 1: { choose1(1); }break; case 2: { choose1(0.0); }break; case 3: { choose1(1e-10); }break; default:cout << "输入选择错误!!!" << endl; } cout << endl; } void main() { loop: cout << " ***************************************************************\n"; cout << " ******************************************\n"; cout << " ***************"; cout << "\n\n\n************************欢迎使用矩阵乘法计算程序!*************************\n"; cout << " ***************\n"; cout << " ******************************************\n"; cout << " ***************************************************************\n\n"; choose(); loop1: cout << "想继续执行吗?" << endl << "1)继续" << endl << "2)退出" << endl; int a; cin >> a; switch (a) { case 1: goto loop; break; case 2: { cout << "非常感谢您的使用!!!" << endl; cout << "按任意键退出……" << endl; cin.get(); cin.get(); exit(1); } default:cout << "输入选择错误!!!" << endl; goto loop1; } } 1> JB.cpp 1>JB.obj : error LNK2019: 无法解析的外部符号 "class CMatrix<int> __cdecl operator*(class CMatrix<int> &,class CMatrix<int> &)" (??D@YA?AV?$CMatrix@H@@AAV0@0@Z),该符号在函数 "void __cdecl choose1<int>(int)" (??$choose1@H@@YAXH@Z) 中被引用 1>JB.obj : error LNK2019: 无法解析的外部符号 "class CMatrix<double> __cdecl operator*(class CMatrix<double> &,class CMatrix<double> &)" (??D@YA?AV?$CMatrix@N@@AAV0@0@Z),该符号在函数 "void __cdecl choose1<double>(double)" (??$choose1@N@@YAXN@Z) 中被引用 1>F:\C++\ZYB\Debug\ZYB.exe : fatal error LNK1120: 2 个无法解析的外部命令
c语言提示error LNK2019: 无法解析的外部符号
在c语言中实现对对象的管理 前面的代码是这样的 #include <stdlib.h> #include <stdio.h> #include "ObjMgt.h" typedef struct key{ unsigned int key1; unsigned int key2; unsigned int key3; struct key * next; }keyall ; /************************************************************************* 功能:增加单个对象 输入: key1 外部关键字 KEY1 key2 外部关键字KEY2 key3 外部关键字KEY3 输出:无 返回: -1 :失败(对象已经存在或者其它异常) 0 :成功 ***************************************************************************/ int length=0; keyall *phead; keyall *pend; int Addkeyall (unsigned int key1, unsigned int key2, unsigned int key3) { if(phead==NULL){ phead=(keyall *)malloc(sizeof(keyall)); pend=phead; } if(length>10000) return -1; keyall *p=phead; while(p!=NULL) { if(p->key1==key1&&p->key2==key2&&p->key3==key3) return -1; p=p->next; } keyall * temp; temp=(keyall * )malloc(sizeof(keyall)); temp->key1=key1; temp->key2=key2; temp->key3=key3; pend->next=temp; pend=temp; pend->next=NULL; length++; /*请实现*/ return 0; } /******************************************************************************** 功能:删除一个或多个对象 输入: key1 外部关键字 KEY1 key2 外部关键字 KEY2 key3 外部关键字 KEY3 输出:无 返回:无 说明:用例保证参数取值为合法值和通配符0xFFFFFFFF, 通配符表示0~65535范围内的任意值; 举例:key1=1,key2=2,key3= 0xFFFFFFFF,表示删除key1=1,key2=2的所有对象; key1,key2,key3取值全为0xFFFFFFFF时,表示删除所有对象。 *********************************************************************************/ void Deletekeyall (unsigned int key1, unsigned int key2, unsigned int key3) { keyall *p; keyall *pre; p=phead->next; pre=phead; bool keya=false; bool keyb=false; bool keyc=false; if(key1==0xFFFFFFFF) keya=true; if(key2==0xFFFFFFFF) keyb=true; if(key3==0xFFFFFFFF) keyc=true; while(p!=NULL) { if((keya||p->key1==key1)&&(keyb||p->key2==key2)&&(keya||p->key3==key3)) { pre->next=p->next; free(p); p=pre->next; } else { pre=p; p=p->next; } } return ; } /******************************************************************************** 功能:查询单个对象是否存在 输入: key1 外部关键字 KEY1 key2 外部关键字 KEY2 key3 外部关键字 KEY3 输出:无 返回: 0:不存在 1:存在 **********************************************************************************/ int IskeyallExist (unsigned int key1, unsigned int key2, unsigned int key3) { /*请实现*/ keyall *p; p=phead->next; while(p!=NULL) { if(key1==p->key1&&key2==p->key2&&key3==p->key3) return 1; } return 0; } /****************************************************************************************************** Description 清空所有对象 Prototype void Clear(); Input Param 无 Output Param 无 Return Value 无 ********************************************************************************************************/ void Clear(void) { /*在这里实现功能*/ return; } 别人的代码可以使用的是这样的 #include "ObjMgt.h" #include <vector> using namespace std; typedef struct{ unsigned int key1; unsigned int key2; unsigned int key3; }KEY; vector <KEY> allKey; /************************************************************************* 功能:增加单个对象 输入: key1 外部关键字 KEY1 key2 外部关键字KEY2 key3 外部关键字KEY3 输出:无 返回: -1 :失败(对象已经存在或者其它异常) 0 :成功 ***************************************************************************/ int AddObject (unsigned int key1, unsigned int key2, unsigned int key3) { /*请实现*/ if(allKey.size() > 10000) return -1; if(key1 > 65535 || key2 > 65535 || key3 > 65535) return -1; int i,j = allKey.size(); for(i = 0; i < j;i++) if(allKey[i].key1 == key1 && allKey[i].key2 == key2 && allKey[i].key3 == key3) return -1; KEY k = {key1,key2,key3}; allKey.push_back(k); return 0; } /******************************************************************************** 功能:删除一个或多个对象 输入: key1 外部关键字 KEY1 key2 外部关键字 KEY2 key3 外部关键字 KEY3 输出:无 返回:无 说明:用例保证参数取值为合法值和通配符0xFFFFFFFF, 通配符表示0~65535范围内的任意值; 举例:key1=1,key2=2,key3= 0xFFFFFFFF,表示删除key1=1,key2=2的所有对象; key1,key2,key3取值全为0xFFFFFFFF时,表示删除所有对象。 *********************************************************************************/ void DeleteObject (unsigned int key1, unsigned int key2, unsigned int key3) { /*请实现*/ bool allKey1,allKey2,allKey3; if(key1 == 0xffffffff) allKey1 = true; else allKey1 = false; if(key2 == 0xffffffff) allKey2 = true; else allKey2 = false; if(key3 == 0xffffffff) allKey3 = true; else allKey3 = false; int i,j = allKey.size(); vector<KEY>::iterator it ; it = allKey.begin(); while (it != allKey.end()) { if(allKey1 || it->key1 == key1) if(allKey2 || it->key2 == key2) if(allKey3 || it->key3 == key3){ it = allKey.erase(it); continue; } it++; } return ; } /******************************************************************************** 功能:查询单个对象是否存在 输入: key1 外部关键字 KEY1 key2 外部关键字 KEY2 key3 外部关键字 KEY3 输出:无 返回: 0:不存在 1:存在 **********************************************************************************/ int IsObjectExist (unsigned int key1, unsigned int key2, unsigned int key3) { /*请实现*/ if(key1 > 65535 || key2 > 65535 || key3 > 65535) return 0; int i,j = allKey.size(); for(i = 0; i < j;i++) if(allKey[i].key1 == key1 && allKey[i].key2 == key2 && allKey[i].key3 == key3) return 1; return 0; } /****************************************************************************************************** Description 清空所有对象 Prototype void Clear(); Input Param 无 Output Param 无 Return Value 无 ********************************************************************************************************/ void Clear(void) { /*在这里实现功能*/ allKey.clear(); return; } 结果我的连接出现如下错误 1>正在链接... 1>CExampleTest.obj : error LNK2019: 无法解析的外部符号 "void __cdecl DeleteObject(unsigned int,unsigned int,unsigned int)" (?DeleteObject@@YAXIII@Z),该符号在函数 "public: void __thiscall CExampleTest::TestCase01(void)" (?TestCase01@CExampleTest@@QAEXXZ) 中被引用 1>CExampleTest.obj : error LNK2019: 无法解析的外部符号 "int __cdecl IsObjectExist(unsigned int,unsigned int,unsigned int)" (?IsObjectExist@@YAHIII@Z),该符号在函数 "public: void __thiscall CExampleTest::TestCase01(void)" (?TestCase01@CExampleTest@@QAEXXZ) 中被引用 1>CExampleTest.obj : error LNK2019: 无法解析的外部符号 "int __cdecl AddObject(unsigned int,unsigned int,unsigned int)" (?AddObject@@YAHIII@Z),该符号在函数 "public: void __thiscall CExampleTest::TestCase01(void)" (?TestCase01@CExampleTest@@QAEXXZ) 中被引用 1>C:\Users\wang\Desktop\对象管理器\ObjMgt\project\Debug\ObjMgt.exe : fatal error LNK1120: 3 个无法解析的外部命令 1>生成日志保存在“file://c:\Users\wang\Desktop\对象管理器\ObjMgt\project\Debug\BuildLog.htm” 1>ObjMgt - 4 个错误,0 个警告 ========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过 ========== 找了一天了 把网上能够试一试的都试了一遍 ,还是不行
错误 17 error LNK2001: 无法解析的外部符号 _PyExc_ImportError
vs2010编译opencv时候 错误 17 error LNK2001: 无法解析的外部符号 _PyExc_ImportError
LNK2019: 无法解析的外部符号
本人在学数据结构--循环链表,源代码为实现一个循环链表,目前只定义了构造函数、dequeue()和enqueue()。其中dequeue()和enqueue()分别为删除和增加节点,当尝试调试enqueue(),出现了错误 #include<iostream> #ifndef CLQUEUE_H #define CLQUEUE_H typedef int QueueElement; class CLQueue{ public: CLQueue(); ~CLQueue(); const CLQueue& operator= (const CLQueue& original); CLQueue(const CLQueue& original); bool empty(); void enqueue(QueueElement value); void dequeue(); void front(); void diaplay(); private: class Node{ public: QueueElement data; Node* next; Node(QueueElement value, Node* link = 0) :data(value), next(link){} }; typedef Node* NodePointer; NodePointer myBack; }; #endif using namespace std; #include"CLQueue.h" CLQueue::CLQueue() :myBack(0){} void CLQueue::enqueue(QueueElement value){ NodePointer newPtr = new CLQueue::Node(value); if (empty()){ myBack->next = newPtr; myBack = newPtr; } else{ newPtr->next = myBack->next; myBack->next = newPtr; myBack = newPtr; } } void CLQueue::dequeue(){ if (!empty()){ CLQueue::NodePointer dePtr = myBack->next; if (dePtr->next == dePtr) myBack = 0; else myBack->next = dePtr->next; delete dePtr; } else cerr << "The CLQueue is empty\n"; } bool CLQueue::empty(){ return myBack == 0; } using namespace std; #include"CLQueue.h" int main(){ CLQueue clq; for (int i = 0; i < 5; i++) clq.enqueue(i); cout << "Enquue*******\n"; } main.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall CLQueue::~CLQueue(void)" (??1CLQueue@@QAE@XZ),该符号在函数 "void __cdecl exercise8_3_8(void)" (?exercise8_3_8@@YAXXZ) 中被引用 1>E:\VC++\ADT\ADTch8\Debug\ADTch8.exe : fatal error LNK1120: 1 个无法解析的外部命令
qt里使用cximage老是报error: LNK2019: 无法解析的外部符号,咋回事啊?
在.pro里是这么写的: INCLUDEPATH += C:\Users\Administrator\Desktop\cximage_lib\include LIBS += C:\Users\Administrator\Desktop\cximage_lib\lib\cximage.lib 这个路径下include就是cximage下的那些.h文件,lib下是用vs2008编译官网下下来的cximage701_full\CxImage目录下的程序得到的cximage.lib。 我的代码如下: #include <QCoreApplication> #include "ximage.h" void main() { CxImage myImage; } 然后编译的时候报好多 main.obj:-1: error: LNK2019: 无法解析的外部符号 "public: __thiscall CxImage::CxImage(unsigned int)" (??0CxImage@@QAE@I@Z),该符号在函数 _main 中被引用。。 都是这种错误。 这是什么问题呀?是我编译的库不对还是?
LNK2019 2001无法解析的外部符号
试过把三个复制合并成一个CPP文件,调试没有问题,但是像这样分开来就不行 ``` 1>client.obj : error LNK2019: 无法解析的外部符号 "public: static void __cdecl client::changeserver(char)" (?changeserver@client@@SAXD@Z),该符号在函数 _main 中被引用 1>client.obj : error LNK2001: 无法解析的外部符号 "private: static int client::num" (?num@client@@0HA) 1>D:\VS2008\项目\client\Debug\client.exe : fatal error LNK1120: 2 个无法解析的外部命令 ``` ``` //client.h #ifndef __CLIENT_H__ #define __CLIENT_H__ #include<iostream> using namespace std; class client { private: static char servername; static int num; char name; public: static void changeserver(char s); client(char n){name=n;num++;}; static void shownum(){cout<<"there are "<<num<<" clients."<<endl;} }; #endif //源1.cpp #include"client.h" #include<iostream> using namespace std; char client::servername='a'; int client::num=0; void client::changeserver(char s) { servername=s; cout<<"the servername has been changed into "<<servername<<endl; } //client.cpp #include"client.h" #include<iostream> using namespace std; int main() { client c('c'); client::changeserver('a'); client::shownum(); return 0; } ```
VS2017+Qt开发环境,编译报错“error LNK2001: 无法解析的外部符号”,请各位大神指导。
1、问题描述 VS2017+Qt开发环境,编译报错“error LNK2001: 无法解析的外部符号”,编译具体结果如下图所示。 ![图片说明](https://img-ask.csdn.net/upload/201907/04/1562240644_143448.jpg) 请各位大神帮忙看下,多谢了。
Kafka实战(三) - Kafka的自我修养与定位
Apache Kafka是消息引擎系统,也是一个分布式流处理平台(Distributed Streaming Platform) Kafka是LinkedIn公司内部孵化的项目。LinkedIn最开始有强烈的数据强实时处理方面的需求,其内部的诸多子系统要执行多种类型的数据处理与分析,主要包括业务系统和应用程序性能监控,以及用户行为数据处理等。 遇到的主要问题: 数据正确性不足 数据的收集主要...
volatile 与 synchronize 详解
Java支持多个线程同时访问一个对象或者对象的成员变量,由于每个线程可以拥有这个变量的拷贝(虽然对象以及成员变量分配的内存是在共享内存中的,但是每个执行的线程还是可以拥有一份拷贝,这样做的目的是加速程序的执行,这是现代多核处理器的一个显著特性),所以程序在执行过程中,一个线程看到的变量并不一定是最新的。 volatile 关键字volatile可以用来修饰字段(成员变量),就是告知程序任何对该变量...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
有哪些让程序员受益终生的建议
从业五年多,辗转两个大厂,出过书,创过业,从技术小白成长为基层管理,联合几个业内大牛回答下这个问题,希望能帮到大家,记得帮我点赞哦。 敲黑板!!!读了这篇文章,你将知道如何才能进大厂,如何实现财务自由,如何在工作中游刃有余,这篇文章很长,但绝对是精品,记得帮我点赞哦!!!! 一腔肺腑之言,能看进去多少,就看你自己了!!! 目录: 在校生篇: 为什么要尽量进大厂? 如何选择语言及方...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
GitHub开源史上最大规模中文知识图谱
近日,一直致力于知识图谱研究的 OwnThink 平台在 Github 上开源了史上最大规模 1.4 亿中文知识图谱,其中数据是以(实体、属性、值),(实体、关系、实体)混合的形式组织,数据格式采用 csv 格式。 到目前为止,OwnThink 项目开放了对话机器人、知识图谱、语义理解、自然语言处理工具。知识图谱融合了两千五百多万的实体,拥有亿级别的实体属性关系,机器人采用了基于知识图谱的语义感...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
微信支付崩溃了,但是更让马化腾和张小龙崩溃的竟然是……
loonggg读完需要3分钟速读仅需1分钟事件还得还原到昨天晚上,10 月 29 日晚上 20:09-21:14 之间,微信支付发生故障,全国微信支付交易无法正常进行。然...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
英特尔不为人知的 B 面
从 PC 时代至今,众人只知在 CPU、GPU、XPU、制程、工艺等战场中,英特尔在与同行硬件芯片制造商们的竞争中杀出重围,且在不断的成长进化中,成为全球知名的半导体公司。殊不知,在「刚硬」的背后,英特尔「柔性」的软件早已经做到了全方位的支持与支撑,并持续发挥独特的生态价值,推动产业合作共赢。 而对于这一不知人知的 B 面,很多人将其称之为英特尔隐形的翅膀,虽低调,但是影响力却不容小觑。 那么,在...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
白话阿里巴巴Java开发手册高级篇
不久前,阿里巴巴发布了《阿里巴巴Java开发手册》,总结了阿里巴巴内部实际项目开发过程中开发人员应该遵守的研发流程规范,这些流程规范在一定程度上能够保证最终的项目交付质量,通过在时间中总结模式,并推广给广大开发人员,来避免研发人员在实践中容易犯的错误,确保最终在大规模协作的项目中达成既定目标。 无独有偶,笔者去年在公司里负责升级和制定研发流程、设计模板、设计标准、代码标准等规范,并在实际工作中进行...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
YouTube排名第一的励志英文演讲《Dream(梦想)》
Idon’t know what that dream is that you have, I don't care how disappointing it might have been as you've been working toward that dream,but that dream that you’re holding in your mind, that it’s po...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
相关热词 c# clr dll c# 如何orm c# 固定大小的字符数组 c#框架设计 c# 删除数据库 c# 中文文字 图片转 c# 成员属性 接口 c#如何将程序封装 16进制负数转换 c# c#练手项目
立即提问