相关疑难解决方法(0)

目标文件中未解析的外部符号

在Visual Studio中编码期间,我得到了一个未解决的外部符号错误,我不知道该怎么做.我不知道出了什么问题.你能破译我吗?我应该在哪里寻找什么样的错误?

1>Form.obj : error LNK2019: unresolved external symbol "public: class Field * __thiscall Field::addField(class Field *)" (?addField@Field@@QAEPAV1@PAV1@@Z) referenced in function "public: void __thiscall Form::parse(class std::basic_stringstream<char,struct std::char_traits<char>,class std::allocator<char> > &)" (?parse@Form@@QAEXAAV?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
1>Form.obj : error LNK2019: unresolved external symbol "public: virtual void __thiscall Field::parse(class std::basic_stringstream<char,struct std::char_traits<char>,class std::allocator<char> > &)" (?parse@Field@@UAEXAAV?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) referenced in function "public: __thiscall InputField::InputField(class std::basic_stringstream<char,struct std::char_traits<char>,class std::allocator<char> > &)" (??0InputField@@QAE@AAV?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
1>Form.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall Field::prompt(void)" (?prompt@Field@@UAEXXZ)
1>Form.obj : error LNK2001: unresolved external …
Run Code Online (Sandbox Code Playgroud)

c++ unresolved-external visual-studio visual-c++

170
推荐指数
9
解决办法
47万
查看次数

Linux共享库,它使用共享库未定义的符号

两个共享库liba.so和libb.so. liba.so使用libb.so. 所有c文件都使用-fPIC编译.链接使用-shared.当我们在liba.so上调用dlopen时,它无法在libb.so中找到符号...我们得到"未定义符号"错误.我们可以dlopen libb.so没有错误.我们知道liba正在寻找libb,因为我们没有找到找不到文件的错误.删除libb.so时,我们收到文件未找到错误.我们试过 - 但没有运气.

有任何想法吗????

哦耶.gcc 4.1.2

更新:我们在链接liba时使用rpath,因此可以找到libb.

ldd liba.so返回:

linux-gate.so.1 => (0xffffe000)  
libb.so => ./libb.so (0xf6ef9000)  <-------- LIBB 
libutil.so.1 => /lib/libutil.so.1 (0xf6ef5000)  
libdl.so.2 => /lib/libdl.so.2 (0xf6ef1000)  
libm.so.6 => /lib/libm.so.6 (0xf6ec9000)  
libpthread.so.0 => /lib/libpthread.so.0 (0xf6eb1000)  
librt.so.1 => /lib/librt.so.1 (0xf6ea8000)  
libc.so.6 => /lib/libc.so.6 (0xf6d62000)  
/lib/ld-linux.so.2 (0x007d0000)   
Run Code Online (Sandbox Code Playgroud)

在libb的末尾没有.#是有意义的吗?

linux gcc shared

14
推荐指数
1
解决办法
4万
查看次数