luci-app-shadowsocksR icon indicating copy to clipboard operation
luci-app-shadowsocksR copied to clipboard

无法编译

Open Cathgao opened this issue 6 years ago • 3 comments

在64位ubuntu18上编译po2lmo

gao@ubuntu:~/openwrt-sdk-18.06.1-ramips-mt7620_gcc-7.3.0_musl.Linux-x86_64/package/luci-app-shadowsocksR/tools/po2lmo$ make
cc  -o src/po2lmo src/po2lmo.o src/template_lmo.o
/usr/bin/ld: src/po2lmo.o: relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: src/template_lmo.o: relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: 最后的链结失败: 输出不可表示的节
collect2: error: ld returned 1 exit status
Makefile:6: recipe for target 'po2lmo' failed
make: *** [po2lmo] Error 1

在makefile加上-fPIC后

gao@ubuntu:~/openwrt-sdk-18.06.1-ramips-mt7620_gcc-7.3.0_musl.Linux-x86_64/package/luci-app-shadowsocksR/tools/po2lmo$ make
cc  -o -fPIC src/po2lmo src/po2lmo.o src/template_lmo.o
src/po2lmo:在函数‘_fini’中:
(.fini+0x0): `_fini'被多次定义
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o:(.fini+0x0):第一次在此定义
src/po2lmo:在函数‘data_start’中:
(.data+0x0): `__data_start'被多次定义
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o:(.data+0x0):第一次在此定义
src/po2lmo:在函数‘data_start’中:
(.data+0x8): `__dso_handle'被多次定义
/usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o:(.data.rel.local+0x0):第一次在此定义
src/po2lmo:(.rodata+0x0): `_IO_stdin_used'被多次定义
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o:(.rodata.cst4+0x0):第一次在此定义
src/po2lmo:在函数‘_start’中:
(.text+0x0): `_start'被多次定义
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o:(.text+0x0):第一次在此定义
src/po2lmo:在函数‘_init’中:
(.init+0x0): `_init'被多次定义
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o:(.init+0x0):第一次在此定义
src/po2lmo.o:在函数‘main’中:
po2lmo.c:(.text+0x378): `main'被多次定义
src/po2lmo:(.text+0x46e):第一次在此定义
src/template_lmo.o:在函数‘sfh_hash’中:
template_lmo.c:(.text+0x0): `sfh_hash'被多次定义
src/po2lmo:(.text+0xa26):第一次在此定义
src/template_lmo.o:在函数‘lmo_canon_hash’中:
template_lmo.c:(.text+0x19d): `lmo_canon_hash'被多次定义
src/po2lmo:(.text+0xbc3):第一次在此定义
src/template_lmo.o:在函数‘lmo_open’中:
template_lmo.c:(.text+0x343): `lmo_open'被多次定义
src/po2lmo:(.text+0xd69):第一次在此定义
src/template_lmo.o:在函数‘lmo_close’中:
template_lmo.c:(.text+0x605): `lmo_close'被多次定义
src/po2lmo:(.text+0x102b):第一次在此定义
src/template_lmo.o:(.bss+0x0): `_lmo_catalogs'被多次定义
src/po2lmo:(.bss+0x10):第一次在此定义
src/template_lmo.o:(.bss+0x8): `_lmo_active_catalog'被多次定义
src/po2lmo:(.bss+0x18):第一次在此定义
src/template_lmo.o:在函数‘lmo_load_catalog’中:
template_lmo.c:(.text+0x673): `lmo_load_catalog'被多次定义
src/po2lmo:(.text+0x1099):第一次在此定义
src/template_lmo.o:在函数‘lmo_change_catalog’中:
template_lmo.c:(.text+0x909): `lmo_change_catalog'被多次定义
src/po2lmo:(.text+0x132f):第一次在此定义
src/template_lmo.o:在函数‘lmo_translate’中:
template_lmo.c:(.text+0xa10): `lmo_translate'被多次定义
src/po2lmo:(.text+0x1436):第一次在此定义
src/template_lmo.o:在函数‘lmo_close_catalog’中:
template_lmo.c:(.text+0xae5): `lmo_close_catalog'被多次定义
src/po2lmo:(.text+0x150b):第一次在此定义
/usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o:(.tm_clone_table+0x0): `__TMC_END__'被多次定义
src/po2lmo:(.data+0x10):第一次在此定义
/usr/bin/ld: src/po2lmo.o: relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: src/template_lmo.o: relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: error in src/po2lmo(.eh_frame); no .eh_frame_hdr table will be created.
/usr/bin/ld: 最后的链结失败: 输出不可表示的节
collect2: error: ld returned 1 exit status
Makefile:6: recipe for target 'po2lmo' failed
make: *** [po2lmo] Error 1

Cathgao avatar Dec 25 '18 14:12 Cathgao

我在Ubuntu 19.04也遇到这个问题了,暂时用另外一个工程的代替了

cd lede-sdk-17.01.4-x86-generic_gcc-5.4.0_musl-1.1.16.Linux-x86_64/package git clone https://github.com/sensec/luci-app-udp2raw.git cd luci-app-udp2raw/tools/po2lmo make sudo make install

tony1016 avatar May 17 '19 03:05 tony1016

我在Ubuntu 19.04也遇到这个问题了,暂时用另外一个工程的代替了

cd lede-sdk-17.01.4-x86-generic_gcc-5.4.0_musl-1.1.16.Linux-x86_64/package git clone https://github.com/sensec/luci-app-udp2raw.git cd luci-app-udp2raw/tools/po2lmo make sudo make install

受累小弟问一下,是直接替换掉报错的po2lmo文件夹么?

moumouzhu avatar Nov 16 '19 06:11 moumouzhu

我在Ubuntu 19.04也遇到这个问题了,暂时用另外一个工程的代替了 cd lede-sdk-17.01.4-x86-generic_gcc-5.4.0_musl-1.1.16.Linux-x86_64/package git clone https://github.com/sensec/luci-app-udp2raw.git cd luci-app-udp2raw/tools/po2lmo make sudo make install

受累小弟问一下,是直接替换掉报错的po2lmo文件夹么?

直接在全Github中搜索po2lmo,clone后编译安装可以直接通过

Cathgao avatar Nov 17 '19 14:11 Cathgao