Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.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
无法链接一个";。o";对象文件 我有一个关于我当前的C++ Linux项目的问题。 我正在构建一个源代码并将其(IDE是QtCreator)链接到一个由供应商提供的.o(而不是.lib)文件。 在构建源文件时,似乎一切正常,但当我到达链接时间时,命令行输出指示许多未定义的引用错误。 以下是使用的cli及其输出: arm-nobuos-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 --sysroot=/opt/nobu-x11/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-nobuos-linux-gnueabi -c -pipe -O2 -pipe -g -feliminate-unused-debug-types -g -DLINUX=1 -Wall -W -D_REENTRANT -fPIC -DQT_QML_DEBUG -DQT_CORE_LIB -I../qt_selexes_test2 -I. -isystem /opt/nobu-x11/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-nobuos-linux-gnueabi/usr/include -isystem /opt/nobu-x11/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-nobuos-linux-gnueabi/usr/include/qt5 -isystem /opt/nobu-x11/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-nobuos-linux-gnueabi/usr/include/qt5/QtCore -I. -I/opt/nobu-x11/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-nobuos-linux-gnueabi/usr/lib/qt5/mkspecs/linux-oe-g++ -o moc_mrs_flasher.o moc_mrs_flasher.cpp arm-nobuos-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 --sysroot=/opt/nobu-x11/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-nobuos-linux-gnueabi -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o qt_selexes_test2 main.o dcan.o moc_dcan.o moc_mrs_flasher.o /SviluppoCodice/parodi/SW/updateAnalogCan_Wurth/qt_selexes_test2_20170511/qt_selexes_test2/mrs_flasher.o -lQt5Core -lpthread main.o: In function `main': main.cpp:26: undefined reference to `mrs_flasher::scan_module_wait(long, int, int, unsigned char&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)' main.cpp:37: undefined reference to `mrs_flasher::select_module(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)' main.cpp:41: undefined reference to `mrs_flasher::download_s19_wait(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)' arm-nobuos-linux-gnueabi-g++-march=armv7-a-mfloat-abi=hard-mfpu=neon-mtune=cortex-a9-sysroot=/opt/nobu-x11/4.1.15-1.1.1/sysroot/cortexa9hf-vfp-neon-nobuos-linux-gnueabi-c-c-pipe-O2-pipe-g-feliminate未使用的调试类型-g-DLINUX=1-Wall-W-D-D\u可重入式-fPIC-DQT-l\u-LIB-qt-qt-selu-test-I/opt/nobu-x11/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-nobuos-linux-gnueabi/usr/include-isystem/opt/nobu-x11/4.1.15-1.1/sysroots/cortexa9hf-vfp-neon-nobuos-linux-gnueabi/usr/include/qt5-isystem/opt/nobu-x11/4.1.1.1/sysroots/cortexa9hf-vfp-nobuos-linux-gnueabi-include/qtu/qti/qt。-I/opt/nobu-x11/4.1.15-1.1/sysroot/cortexa9hf vfp neon nobuos linux gnueabi/usr/lib/qt5/mkspecs/linux-oe-g++-o moc_mrs_flasher.o moc_mrs_flasher.cpp arm-nobuos-linux-gnueabi-g++-march=armv7-a-mfloat-abi=hard-mfpu=neon-mtune=cortex-a9--sysroot=/opt/nobu-x11/4.1.15-1.1.1/sysroot/cortexa9hf-vfp-neon-nobuos-linux-gnueabi-Wl,--O1-Wl,--hash style=gnu-Wl,--根据需要-o qt_selexes_test2 main.o dcan.o moc_dcan.o moc_mrs_flasher.o/sviluppocdice/parodi/SW/updateAnalogCan_Wurth/qt_selexes_test2\u 20170511/qt_selexes_test2/mrs_flasher.o-lQt5Core-lpthread main.o:在函数“main”中: main.cpp:26:对“mrs_flasher::scan_module_wait(long,int,int,unsigned char&,std::_cxx11::basic_string&)”的未定义引用 main.cpp:37:对“mrs\u闪光器::选择\u模块(int,std::\uu cxx11::基本\u字符串&)”的未定义引用 main.cpp:41:mrs_flasher::download_s19_wait(std::_cx11::basic_string,std:_cx11::basic_string&)的未定义引用_C++_Linux_Linker_Linker Errors - Fatal编程技术网

无法链接一个";。o";对象文件 我有一个关于我当前的C++ Linux项目的问题。 我正在构建一个源代码并将其(IDE是QtCreator)链接到一个由供应商提供的.o(而不是.lib)文件。 在构建源文件时,似乎一切正常,但当我到达链接时间时,命令行输出指示许多未定义的引用错误。 以下是使用的cli及其输出: arm-nobuos-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 --sysroot=/opt/nobu-x11/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-nobuos-linux-gnueabi -c -pipe -O2 -pipe -g -feliminate-unused-debug-types -g -DLINUX=1 -Wall -W -D_REENTRANT -fPIC -DQT_QML_DEBUG -DQT_CORE_LIB -I../qt_selexes_test2 -I. -isystem /opt/nobu-x11/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-nobuos-linux-gnueabi/usr/include -isystem /opt/nobu-x11/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-nobuos-linux-gnueabi/usr/include/qt5 -isystem /opt/nobu-x11/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-nobuos-linux-gnueabi/usr/include/qt5/QtCore -I. -I/opt/nobu-x11/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-nobuos-linux-gnueabi/usr/lib/qt5/mkspecs/linux-oe-g++ -o moc_mrs_flasher.o moc_mrs_flasher.cpp arm-nobuos-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 --sysroot=/opt/nobu-x11/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-nobuos-linux-gnueabi -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o qt_selexes_test2 main.o dcan.o moc_dcan.o moc_mrs_flasher.o /SviluppoCodice/parodi/SW/updateAnalogCan_Wurth/qt_selexes_test2_20170511/qt_selexes_test2/mrs_flasher.o -lQt5Core -lpthread main.o: In function `main': main.cpp:26: undefined reference to `mrs_flasher::scan_module_wait(long, int, int, unsigned char&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)' main.cpp:37: undefined reference to `mrs_flasher::select_module(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)' main.cpp:41: undefined reference to `mrs_flasher::download_s19_wait(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)' arm-nobuos-linux-gnueabi-g++-march=armv7-a-mfloat-abi=hard-mfpu=neon-mtune=cortex-a9-sysroot=/opt/nobu-x11/4.1.15-1.1.1/sysroot/cortexa9hf-vfp-neon-nobuos-linux-gnueabi-c-c-pipe-O2-pipe-g-feliminate未使用的调试类型-g-DLINUX=1-Wall-W-D-D\u可重入式-fPIC-DQT-l\u-LIB-qt-qt-selu-test-I/opt/nobu-x11/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-nobuos-linux-gnueabi/usr/include-isystem/opt/nobu-x11/4.1.15-1.1/sysroots/cortexa9hf-vfp-neon-nobuos-linux-gnueabi/usr/include/qt5-isystem/opt/nobu-x11/4.1.1.1/sysroots/cortexa9hf-vfp-nobuos-linux-gnueabi-include/qtu/qti/qt。-I/opt/nobu-x11/4.1.15-1.1/sysroot/cortexa9hf vfp neon nobuos linux gnueabi/usr/lib/qt5/mkspecs/linux-oe-g++-o moc_mrs_flasher.o moc_mrs_flasher.cpp arm-nobuos-linux-gnueabi-g++-march=armv7-a-mfloat-abi=hard-mfpu=neon-mtune=cortex-a9--sysroot=/opt/nobu-x11/4.1.15-1.1.1/sysroot/cortexa9hf-vfp-neon-nobuos-linux-gnueabi-Wl,--O1-Wl,--hash style=gnu-Wl,--根据需要-o qt_selexes_test2 main.o dcan.o moc_dcan.o moc_mrs_flasher.o/sviluppocdice/parodi/SW/updateAnalogCan_Wurth/qt_selexes_test2\u 20170511/qt_selexes_test2/mrs_flasher.o-lQt5Core-lpthread main.o:在函数“main”中: main.cpp:26:对“mrs_flasher::scan_module_wait(long,int,int,unsigned char&,std::_cxx11::basic_string&)”的未定义引用 main.cpp:37:对“mrs\u闪光器::选择\u模块(int,std::\uu cxx11::基本\u字符串&)”的未定义引用 main.cpp:41:mrs_flasher::download_s19_wait(std::_cx11::basic_string,std:_cx11::basic_string&)的未定义引用

无法链接一个";。o";对象文件 我有一个关于我当前的C++ Linux项目的问题。 我正在构建一个源代码并将其(IDE是QtCreator)链接到一个由供应商提供的.o(而不是.lib)文件。 在构建源文件时,似乎一切正常,但当我到达链接时间时,命令行输出指示许多未定义的引用错误。 以下是使用的cli及其输出: arm-nobuos-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 --sysroot=/opt/nobu-x11/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-nobuos-linux-gnueabi -c -pipe -O2 -pipe -g -feliminate-unused-debug-types -g -DLINUX=1 -Wall -W -D_REENTRANT -fPIC -DQT_QML_DEBUG -DQT_CORE_LIB -I../qt_selexes_test2 -I. -isystem /opt/nobu-x11/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-nobuos-linux-gnueabi/usr/include -isystem /opt/nobu-x11/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-nobuos-linux-gnueabi/usr/include/qt5 -isystem /opt/nobu-x11/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-nobuos-linux-gnueabi/usr/include/qt5/QtCore -I. -I/opt/nobu-x11/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-nobuos-linux-gnueabi/usr/lib/qt5/mkspecs/linux-oe-g++ -o moc_mrs_flasher.o moc_mrs_flasher.cpp arm-nobuos-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 --sysroot=/opt/nobu-x11/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-nobuos-linux-gnueabi -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o qt_selexes_test2 main.o dcan.o moc_dcan.o moc_mrs_flasher.o /SviluppoCodice/parodi/SW/updateAnalogCan_Wurth/qt_selexes_test2_20170511/qt_selexes_test2/mrs_flasher.o -lQt5Core -lpthread main.o: In function `main': main.cpp:26: undefined reference to `mrs_flasher::scan_module_wait(long, int, int, unsigned char&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)' main.cpp:37: undefined reference to `mrs_flasher::select_module(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)' main.cpp:41: undefined reference to `mrs_flasher::download_s19_wait(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)' arm-nobuos-linux-gnueabi-g++-march=armv7-a-mfloat-abi=hard-mfpu=neon-mtune=cortex-a9-sysroot=/opt/nobu-x11/4.1.15-1.1.1/sysroot/cortexa9hf-vfp-neon-nobuos-linux-gnueabi-c-c-pipe-O2-pipe-g-feliminate未使用的调试类型-g-DLINUX=1-Wall-W-D-D\u可重入式-fPIC-DQT-l\u-LIB-qt-qt-selu-test-I/opt/nobu-x11/4.1.15-1.1.1/sysroots/cortexa9hf-vfp-neon-nobuos-linux-gnueabi/usr/include-isystem/opt/nobu-x11/4.1.15-1.1/sysroots/cortexa9hf-vfp-neon-nobuos-linux-gnueabi/usr/include/qt5-isystem/opt/nobu-x11/4.1.1.1/sysroots/cortexa9hf-vfp-nobuos-linux-gnueabi-include/qtu/qti/qt。-I/opt/nobu-x11/4.1.15-1.1/sysroot/cortexa9hf vfp neon nobuos linux gnueabi/usr/lib/qt5/mkspecs/linux-oe-g++-o moc_mrs_flasher.o moc_mrs_flasher.cpp arm-nobuos-linux-gnueabi-g++-march=armv7-a-mfloat-abi=hard-mfpu=neon-mtune=cortex-a9--sysroot=/opt/nobu-x11/4.1.15-1.1.1/sysroot/cortexa9hf-vfp-neon-nobuos-linux-gnueabi-Wl,--O1-Wl,--hash style=gnu-Wl,--根据需要-o qt_selexes_test2 main.o dcan.o moc_dcan.o moc_mrs_flasher.o/sviluppocdice/parodi/SW/updateAnalogCan_Wurth/qt_selexes_test2\u 20170511/qt_selexes_test2/mrs_flasher.o-lQt5Core-lpthread main.o:在函数“main”中: main.cpp:26:对“mrs_flasher::scan_module_wait(long,int,int,unsigned char&,std::_cxx11::basic_string&)”的未定义引用 main.cpp:37:对“mrs\u闪光器::选择\u模块(int,std::\uu cxx11::基本\u字符串&)”的未定义引用 main.cpp:41:mrs_flasher::download_s19_wait(std::_cx11::basic_string,std:_cx11::basic_string&)的未定义引用,c++,linux,linker,linker-errors,C++,Linux,Linker,Linker Errors,查看.o文件,似乎: 编译器的目标机器是相同的(通过调用编译我的cpp文件生成的.o文件上的命令文件和供应商提供的文件,两者都会生成以下输出“ELF 32位LSB可重定位,ARM,EABI5版本1(SYSV),未剥离” .o文件包含未定义的引用对象(我使用命令strings mrs_flasher.o | grep scan_module_wait来搜索 “对`mrs_Flash::scan_module_wait`的未定义引用”命令输出为: 扫描模块等待 _ZN11mrs_闪存16扫描

查看.o文件,似乎:

  • 编译器的目标机器是相同的(通过调用编译我的cpp文件生成的.o文件上的命令文件和供应商提供的文件,两者都会生成以下输出“ELF 32位LSB可重定位,ARM,EABI5版本1(SYSV),未剥离

  • .o文件包含未定义的引用对象(我使用命令strings mrs_flasher.o | grep scan_module_wait来搜索 “对`mrs_Flash::scan_module_wait`的未定义引用”命令输出为:

扫描模块等待

_ZN11mrs_闪存16扫描_模块_waiteliirss

_ZN11mrs_闪存16扫描_模块_waiteliirss )

是否有人可以帮助我进一步调查这个问题?我是否可以发布一些东西来帮助我面对这个问题?
谢谢Giovanni解释是供应商提供的目标文件- 我猜是
/sviluppocdice/parodi/SW/updateAnalogCan\u Wurth/qt\u selexes\u test2\u 20170511/qt\u selexes\u test2/mrs\u flasher.o
- 未使用您正在使用的同一编译器或与ABI兼容的编译器编译

您可以从编译器发出以下调用的事实中看出这一点:

mrs_flasher::scan_module_wait(long, int, int, unsigned char&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)
其中包括:

$ c++filt _ZN11mrs_flasher16scan_module_waitEliiRhRSs
mrs_flasher::scan_module_wait(long, int, int, unsigned char&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)
与:

std::basic_string
告诉我们您的编译器编译到, GCC 5.1引入,但构建对象文件的编译器没有

最可能的原因是您的提供程序使用GCC<5.1构建了对象文件。您无法链接此对象 使用编译器构建的文件-除非您想根据过时的ABI构建自己的代码,我想您不会。您应该让您的提供者提供一个符合
C++11 ABI。

谢谢Mike,我将尝试使用旧的ABI方法(以验证提供程序库)。然后我将要求他使用我的编译器重建.o。现在我必须了解如何在QTCreator中使用旧的ABI
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&
std::basic_string<char, std::char_traits<char>, std::allocator<char> >&
std::__cxx11::basic_string
std::basic_string