在Ubuntu上安装BERNESE时如何解决菜单编译错误?
How to solve menu compilation errors when installing BERNESE on Ubuntu?
我正在尝试在 Ubuntu 18.04 上安装伯尔尼 GNSS 软件 5.2。我已经安装了 Perl 5 和 qt4。
setup.sh
运行 但编译出错。
我先选择了编译器G95,它给出了错误菜单和FORTRAN程序,然后用GNU编译器和FORTRAN程序编译得很好,但菜单仍然出错。
此外,一旦我关闭 setup.sh
,我就无法 运行 启动配置菜单的 configure.pm
(并且 运行 再次覆盖 setup.sh
一切)。
我遇到以下错误:
g++: error: .obj/release/menutils.o: No such file or directory
Makefile:225: recipe for target 'menu_tmp' failed
make: [menu_tmp] Error 1 (ignored)
================================================================================
Compilation finished
********************************************************************************
ERROR: Compilation not successful!
********************************************************************************
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
make: [.obj/release/menutils.o] Error 1 (ignored)
g++: error: .obj/release/menutils.o: No such file or directory
make: [menu_tmp] Error 1 (ignored)
'menu_tmp' and 'menu_tmp' are identical (not copied) at /BERN52/GPS/EXE/cmenu.pl line 223.
configure.pm
错误不是 运行ning 似乎是由于将脚本从 windows 导出到 linux 我通过安装 http://dos2unix.sourceforge.net/ 和 运行宁dos2unix configure.pm
。正确执行配置菜单后。
-解决菜单编译形式:
运行 直接只是 cmenu.pl
,即编译菜单时调用的脚本,它会给出相同的错误,但 makefile 中有更多详细信息。 生成文件中缺少 zlib。
/usr/bin/ld: .obj/release/menutils.o: undefined reference to symbol 'compress'
//lib/x86_64-linux-gnu/libz.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Makefile:225: recipe for target 'menu_tmp' failed
make: [menu_tmp] Error 1 (ignored)
================================================================================
Compilation finished
********************************************************************************
ERROR: Compilation not successful!
********************************************************************************
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
collect2: error: ld returned 1 exit status
make: [menu_tmp] Error 1 (ignored)
'menu_tmp' and 'menu_tmp' are identical (not copied) at ./cmenu.pl line 226.
我首先尝试将 LIBS 上的库包含在 MakeFile 中,但它在编译时仍然失败,因为每次我 运行 编译并擦除我的更改时它都在重新制作 MakeFile。
我是这样解决编译好的:
首先像往常一样启动setup.sh
安装所有东西并在编译菜单时给出错误。然后,在 运行 设置 dos2unix configure.pm
之后,我可以访问配置菜单:
1 - 安装 zlib
sudo apt-get install libz-dev
2 - 在 GPS/EXE/cmenu.pl 注释行 116(避免重新制作 MakeFile,这样当我们尝试编译时我们的更改不会被删除)
# system("$qmake -Wall menu.tmp");
3 - 在 MENU/MakeFile 第 19 行添加 -lz
LIBS = $(SUBLIBS) -L/usr/lib/x86_64-linux-gnu -lQt3Support -lQtGui -lQtNetwork -lQtCore -lpthread -lz
4 - 在 MENU/MakeFile 注释行 227 到 255,它们也在每隔 运行 重新制作 MakeFile。
# Makefile: menu.tmp /usr/share/qt4/mkspecs/linux-g++-64/qmake.conf /usr/share/qt4/mkspecs/common/unix.conf \
# /usr/share/qt4/mkspecs/common/linux.conf \
# /usr/share/qt4/mkspecs/common/gcc-base.conf \
# /usr/share/qt4/mkspecs/common/gcc-base-unix.conf \
# /usr/share/qt4/mkspecs/common/g++-base.conf \
# /usr/share/qt4/mkspecs/common/g++-unix.conf \
# /usr/share/qt4/mkspecs/qconfig.pri \
# /usr/share/qt4/mkspecs/features/qt_functions.prf \
# /usr/share/qt4/mkspecs/features/qt_config.prf \
# /usr/share/qt4/mkspecs/features/exclusive_builds.prf \
# /usr/share/qt4/mkspecs/features/default_pre.prf \
# /usr/share/qt4/mkspecs/features/release.prf \
# /usr/share/qt4/mkspecs/features/default_post.prf \
# /usr/share/qt4/mkspecs/features/shared.prf \
# /usr/share/qt4/mkspecs/features/unix/gdb_dwarf_index.prf \
# /usr/share/qt4/mkspecs/features/warn_on.prf \
# /usr/share/qt4/mkspecs/features/qt.prf \
# /usr/share/qt4/mkspecs/features/unix/thread.prf \
# /usr/share/qt4/mkspecs/features/moc.prf \
# /usr/share/qt4/mkspecs/features/resources.prf \
# /usr/share/qt4/mkspecs/features/uic.prf \
# /usr/share/qt4/mkspecs/features/yacc.prf \
# /usr/share/qt4/mkspecs/features/lex.prf \
# /usr/share/qt4/mkspecs/features/include_source_dir.prf \
# /usr/lib/x86_64-linux-gnu/libQt3Support.prl \
# /usr/lib/x86_64-linux-gnu/libQtGui.prl \
# /usr/lib/x86_64-linux-gnu/libQtNetwork.prl \
# /usr/lib/x86_64-linux-gnu/libQtCore.prl
# $(QMAKE) -Wall -o Makefile menu.tmp
5 - 从 configure.pm
再次编译菜单并成功编译。
我正在尝试在 Ubuntu 18.04 上安装伯尔尼 GNSS 软件 5.2。我已经安装了 Perl 5 和 qt4。
setup.sh
运行 但编译出错。
我先选择了编译器G95,它给出了错误菜单和FORTRAN程序,然后用GNU编译器和FORTRAN程序编译得很好,但菜单仍然出错。
此外,一旦我关闭 setup.sh
,我就无法 运行 启动配置菜单的 configure.pm
(并且 运行 再次覆盖 setup.sh
一切)。
我遇到以下错误:
g++: error: .obj/release/menutils.o: No such file or directory
Makefile:225: recipe for target 'menu_tmp' failed
make: [menu_tmp] Error 1 (ignored)
================================================================================
Compilation finished
********************************************************************************
ERROR: Compilation not successful!
********************************************************************************
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
make: [.obj/release/menutils.o] Error 1 (ignored)
g++: error: .obj/release/menutils.o: No such file or directory
make: [menu_tmp] Error 1 (ignored)
'menu_tmp' and 'menu_tmp' are identical (not copied) at /BERN52/GPS/EXE/cmenu.pl line 223.
configure.pm
错误不是 运行ning 似乎是由于将脚本从 windows 导出到 linux 我通过安装 http://dos2unix.sourceforge.net/ 和 运行宁dos2unix configure.pm
。正确执行配置菜单后。
-解决菜单编译形式:
运行 直接只是 cmenu.pl
,即编译菜单时调用的脚本,它会给出相同的错误,但 makefile 中有更多详细信息。 生成文件中缺少 zlib。
/usr/bin/ld: .obj/release/menutils.o: undefined reference to symbol 'compress'
//lib/x86_64-linux-gnu/libz.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Makefile:225: recipe for target 'menu_tmp' failed
make: [menu_tmp] Error 1 (ignored)
================================================================================
Compilation finished
********************************************************************************
ERROR: Compilation not successful!
********************************************************************************
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
collect2: error: ld returned 1 exit status
make: [menu_tmp] Error 1 (ignored)
'menu_tmp' and 'menu_tmp' are identical (not copied) at ./cmenu.pl line 226.
我首先尝试将 LIBS 上的库包含在 MakeFile 中,但它在编译时仍然失败,因为每次我 运行 编译并擦除我的更改时它都在重新制作 MakeFile。
我是这样解决编译好的:
首先像往常一样启动setup.sh
安装所有东西并在编译菜单时给出错误。然后,在 运行 设置 dos2unix configure.pm
之后,我可以访问配置菜单:
1 - 安装 zlib
sudo apt-get install libz-dev
2 - 在 GPS/EXE/cmenu.pl 注释行 116(避免重新制作 MakeFile,这样当我们尝试编译时我们的更改不会被删除)
# system("$qmake -Wall menu.tmp");
3 - 在 MENU/MakeFile 第 19 行添加 -lz
LIBS = $(SUBLIBS) -L/usr/lib/x86_64-linux-gnu -lQt3Support -lQtGui -lQtNetwork -lQtCore -lpthread -lz
4 - 在 MENU/MakeFile 注释行 227 到 255,它们也在每隔 运行 重新制作 MakeFile。
# Makefile: menu.tmp /usr/share/qt4/mkspecs/linux-g++-64/qmake.conf /usr/share/qt4/mkspecs/common/unix.conf \
# /usr/share/qt4/mkspecs/common/linux.conf \
# /usr/share/qt4/mkspecs/common/gcc-base.conf \
# /usr/share/qt4/mkspecs/common/gcc-base-unix.conf \
# /usr/share/qt4/mkspecs/common/g++-base.conf \
# /usr/share/qt4/mkspecs/common/g++-unix.conf \
# /usr/share/qt4/mkspecs/qconfig.pri \
# /usr/share/qt4/mkspecs/features/qt_functions.prf \
# /usr/share/qt4/mkspecs/features/qt_config.prf \
# /usr/share/qt4/mkspecs/features/exclusive_builds.prf \
# /usr/share/qt4/mkspecs/features/default_pre.prf \
# /usr/share/qt4/mkspecs/features/release.prf \
# /usr/share/qt4/mkspecs/features/default_post.prf \
# /usr/share/qt4/mkspecs/features/shared.prf \
# /usr/share/qt4/mkspecs/features/unix/gdb_dwarf_index.prf \
# /usr/share/qt4/mkspecs/features/warn_on.prf \
# /usr/share/qt4/mkspecs/features/qt.prf \
# /usr/share/qt4/mkspecs/features/unix/thread.prf \
# /usr/share/qt4/mkspecs/features/moc.prf \
# /usr/share/qt4/mkspecs/features/resources.prf \
# /usr/share/qt4/mkspecs/features/uic.prf \
# /usr/share/qt4/mkspecs/features/yacc.prf \
# /usr/share/qt4/mkspecs/features/lex.prf \
# /usr/share/qt4/mkspecs/features/include_source_dir.prf \
# /usr/lib/x86_64-linux-gnu/libQt3Support.prl \
# /usr/lib/x86_64-linux-gnu/libQtGui.prl \
# /usr/lib/x86_64-linux-gnu/libQtNetwork.prl \
# /usr/lib/x86_64-linux-gnu/libQtCore.prl
# $(QMAKE) -Wall -o Makefile menu.tmp
5 - 从 configure.pm
再次编译菜单并成功编译。