关闭 3 个任务中的第 1 个 cstrahan 打开了这个问题 2021 年 3 月 26 日 · 6条评论 关闭 3 个任务中的第 1 个 在 Ubuntu 20.10 上链接 libtirpc 失败#1117 cstrahan 打开了这个问题 2021 年 3 月 26 日 · 6条评论 注释 斯特拉汉 评论了 2021 年 3 月 26 日 以下是我重现该问题所遵循的步骤: 尝试在 Ubuntu 20.10 上构建: $ export PYTHONPATH=/usr/local/lib/python2.7/dist-packages/gtk-2.0:/usr/local/lib/python2.7/site-packages/:/usr/local/lib/python2.7/site-packages/gtk-2.0 $ ./configure --with-realtime=uspace --with-python=python2 --with-boost-python=boost_python27 $ BUILD_VERBOSE=1 make 查找构建失败: Linking linuxcncrsh g++ -L/home/cstrahan/src/linuxcnc/lib -Wl,-rpath,/home/cstrahan/src/linuxcnc/lib -ltirpc -o ../bin/linuxcncrsh -Wall -g -I. -I/home/cstrahan/src/linuxcnc/src/include -DULAPI -D_GNU_SOURCE -Os -DLOCALE_DIR=\"/usr/share/locale\" -DPACKAGE=\"linuxcnc\" objects/emc/usr_intf/emcrsh.o objects/emc/usr_intf/shcom.o ../lib/liblinuxcnchal.so.0 ../lib/liblinuxcnc.a ../lib/libnml.so.0 ../lib/liblinuxcncini.so.0 -lpthread /usr/bin/ld: ../lib/libnml.so.0: undefined reference to `xdr_bytes' /usr/bin/ld: ../lib/libnml.so.0: undefined reference to `xdr_u_long' /usr/bin/ld: ../lib/libnml.so.0: undefined reference to `xdr_int' /usr/bin/ld: ../lib/libnml.so.0: undefined reference to `xdr_vector' /usr/bin/ld: ../lib/libnml.so.0: undefined reference to `xdr_double' /usr/bin/ld: ../lib/libnml.so.0: undefined reference to `xdr_long' /usr/bin/ld: ../lib/libnml.so.0: undefined reference to `xdr_float' /usr/bin/ld: ../lib/libnml.so.0: undefined reference to `xdrmem_create' /usr/bin/ld: ../lib/libnml.so.0: undefined reference to `xdr_short' /usr/bin/ld: ../lib/libnml.so.0: undefined reference to `xdr_u_char' /usr/bin/ld: ../lib/libnml.so.0: undefined reference to `xdr_u_int' /usr/bin/ld: ../lib/libnml.so.0: undefined reference to `xdr_u_short' /usr/bin/ld: ../lib/libnml.so.0: undefined reference to `xdr_char' collect2: error: ld returned 1 exit status make: *** [emc/usr_intf/Submakefile:25: ../bin/linuxcncrsh] Error 1 如果我手动调整并运行最后一个命令,-ltirpc那么libnml.so.0错误就会消失并linuxcncrsh成功链接: $ g++ -L/home/cstrahan/src/linuxcnc/lib -Wl,-rpath,/home/cstrahan/src/linuxcnc/lib -ltirpc -o ../bin/linuxcncrsh -Wall -g -I. -I/home/cstrahan/src/linuxcnc/src/include -DULAPI -D_GNU_SOURCE -Os -DLOCALE_DIR=\"/usr/share/locale\" -DPACKAGE=\"linuxcnc\" objects/emc/usr_intf/emcrsh.o objects/emc/usr_intf/shcom.o ../lib/liblinuxcnchal.so.0 ../lib/liblinuxcnc.a ../lib/libnml.so.0 ../lib/liblinuxcncini.so.0 -lpthread -ltirpc ; echo $? 0 通过以下补丁,我可以成功构建整个 LinuxCNC: diff --git a/src/emc/iotask/Submakefile b/src/emc/iotask/Submakefile index e01cf8b11..5ec116e72 100644 --- a/src/emc/iotask/Submakefile +++ b/src/emc/iotask/Submakefile @@ -4,11 +4,11 @@ USERSRCS += $(IOSRCS) $(IOV2SRCS) ../bin/io: $(call TOOBJS, $(IOSRCS)) ../lib/liblinuxcnc.a ../lib/libnml.so.0 ../lib/liblinuxcnchal.so.0 ../lib/liblinuxcncini.so.0 $(ECHO) Linking $(notdir $@) - @$(CXX) $(LDFLAGS) -o $@ $^ + @$(CXX) $(LDFLAGS) -o $@ $^ -ltirpc ../bin/iov2: $(call TOOBJS, $(IOV2SRCS)) ../lib/liblinuxcnc.a ../lib/libnml.so.0 ../lib/liblinuxcnchal.so.0 ../lib/liblinuxcncini.so.0 $(ECHO) Linking $(notdir $@) - @$(CXX) $(LDFLAGS) -o $@ $^ + @$(CXX) $(LDFLAGS) -o $@ $^ -ltirpc TARGETS += ../bin/io ../bin/iov2 diff --git a/src/emc/sai/Submakefile b/src/emc/sai/Submakefile index 9bc28615a..ca64c6f47 100644 --- a/src/emc/sai/Submakefile +++ b/src/emc/sai/Submakefile @@ -9,7 +9,7 @@ INCLUDES += emc/sai ../bin/rs274: $(call TOOBJS, $(SAISRCS)) ../lib/librs274.so.0 ../lib/liblinuxcnc.a ../lib/libnml.so.0 \ ../lib/liblinuxcnchal.so.0 ../lib/liblinuxcncini.so.0 ../lib/libpyplugin.so.0 $(ECHO) Linking $(notdir $@) - $(Q)$(CXX) $(LDFLAGS) -o $@ $^ $(ULFLAGS) $(BOOST_PYTHON_LIBS) -l$(LIBPYTHON) $(READLINE_LIBS) + $(Q)$(CXX) $(LDFLAGS) -o $@ $^ -ltirpc $(ULFLAGS) $(BOOST_PYTHON_LIBS) -l$(LIBPYTHON) $(READLINE_LIBS) $(patsubst ./emc/sai/%,../include/%,$(wildcard ./emc/sai/*.h)): ../include/%.h: ./emc/sai/%.h cp $^ $@ diff --git a/src/emc/task/Submakefile b/src/emc/task/Submakefile index 0db167a92..0aabc3fe2 100644 --- a/src/emc/task/Submakefile +++ b/src/emc/task/Submakefile @@ -5,7 +5,7 @@ USERSRCS += $(EMCSVRSRCS) ../bin/linuxcncsvr: $(call TOOBJS, $(EMCSVRSRCS)) ../lib/liblinuxcnchal.so.0 ../lib/liblinuxcnc.a ../lib/libnml.so.0 ../lib/liblinuxcncini.so.0 $(ECHO) Linking $(notdir $@) - @$(CXX) $(LDFLAGS) -o $@ $^ + @$(CXX) $(LDFLAGS) -o $@ $^ -ltirpc TARGETS += ../bin/linuxcncsvr # disabled: emc/task/iotaskintf.cc diff --git a/src/emc/usr_intf/Submakefile b/src/emc/usr_intf/Submakefile index 1ddd6de48..6254c9b4c 100644 --- a/src/emc/usr_intf/Submakefile +++ b/src/emc/usr_intf/Submakefile @@ -22,20 +22,20 @@ TARGETS += ../tcl/linuxcnc.so ../bin/linuxcncrsh: $(call TOOBJS, $(EMCRSHSRCS)) ../lib/liblinuxcnchal.so.0 ../lib/liblinuxcnc.a ../lib/libnml.so.0 ../lib/liblinuxcncini.so.0 $(ECHO) Linking $(notdir $@) - $(Q)$(CXX) $(LDFLAGS) -o $@ $(ULFLAGS) $^ -lpthread + $(Q)$(CXX) $(LDFLAGS) -o $@ $(ULFLAGS) $^ -ltirpc -lpthread TARGETS += ../bin/linuxcncrsh ../bin/schedrmt: $(call TOOBJS, $(EMCSCHEDSRCS)) ../lib/liblinuxcnchal.so.0 ../lib/liblinuxcnc.a ../lib/libnml.so.0 ../lib/liblinuxcncini.so.0 $(ECHO) Linking $(notdir $@) - $(Q)$(CXX) $(LDFLAGS) -o $@ $(ULFLAGS) $^ -lpthread + $(Q)$(CXX) $(LDFLAGS) -o $@ $(ULFLAGS) $^ -ltirpc -lpthread TARGETS += ../bin/schedrmt ../bin/linuxcnclcd: $(call TOOBJS, $(EMCLCDSRCS)) ../lib/liblinuxcnchal.so.0 ../lib/liblinuxcnc.a ../lib/libnml.so.0 ../lib/liblinuxcncini.so.0 $(ECHO) Linking $(notdir $@) - $(Q)$(CXX) $(LDFLAGS) -o $@ $(ULFLAGS) $^ + $(Q)$(CXX) $(LDFLAGS) -o $@ $(ULFLAGS) $^ -ltirpc TARGETS += ../bin/linuxcnclcd ../bin/halui: $(call TOOBJS, $(HALUISRCS)) ../lib/liblinuxcnc.a ../lib/liblinuxcncini.so.0 ../lib/libnml.so.0 ../lib/liblinuxcnchal.so.0 $(ECHO) Linking $(notdir $@) - $(Q)$(CXX) $(LDFLAGS) -o $@ $(ULFLAGS) $^ + $(Q)$(CXX) $(LDFLAGS) -o $@ $(ULFLAGS) $^ -ltirpc TARGETS += ../bin/halui 这是我期望发生的事情: 我希望 LinuxCNC 构建良好。 这是发生了什么: 相反,我遇到了一个链接问题。 有关我的硬件和软件的信息: 我正在使用这个 Linux 发行版和版本:Ubuntu 20.10 我正在使用这个内核版本:5.8.0 我正在使用这个编译器:gcc 10.2.0 我正在使用这个链接器:GNU ld 2.35.1 我在跑步 … 来自 linuxcnc.org 的二进制版本(包括 buildbot.linuxcnc.org) 我自己构建的二进制文件 来自 linuxcnc.org 之外的其他来源的二进制版本 我正在使用这个 LinuxCNC 版本:2.8 标签 我正在使用此用户界面 (GUI)(例如 AXIS、Touchy、gmoccapy 等):N/A 我正在使用此接口硬件供应商和芯片组(例如,并行端口、以太网端口、FPGA 卡):N/A 合作者 再生开发 评论了 2021 年 3 月 26 日 您正在构建 2.8 还是 master?Afaik 这已经在 master 中修复了。 作者 斯特拉汉 评论了 2021 年 3 月 26 日 2.8(有一个 git clone,我检查了 2.8 标签)。抱歉,如果这已经解决了——尝试搜索问题/PR,但找不到任何关于该领域工作的提及。请问您可以删除对提交/PR 的引用吗?很好奇修复的样子。 作者 斯特拉汉 评论了 2021 年 3 月 26 日 没关系,找到了:0dc3ccf 作者 斯特拉汉 评论了 2021 年 3 月 26 日 由于这是在 master 中修复的,我将继续并关闭。谢谢@rene-dev! cstrahan已完成 关闭 2021 年 3 月 26 日 喜欢 (0) Gmoccapy:新翻译导致错误的默认主题 #1111 文件文件 #1118 编译时警告 #7 2209 和编译问题 #6 驱动程序 LPC176x 我无法使用 mcuxpresso ide 进行编译 #4 反转 A/B(联动 y)步进启用引脚? #3 编译时警告 #72209 和编译问题 #6驱动程序 LPC176x 我无法使用 mcuxpresso ide 进行编译 #4反转 A/B(联动 y)步进启用引脚? #3无串行访问 #2编译问题,可能的 makefile 导出分支? #1GRBL/UGS 问题,已知硬件可以工作,但没有运行 Grbl 的步进运动XY 绘图仪 – 将 Word 文档转换为 GRBL 文件
以下是我重现该问题所遵循的步骤:
尝试在 Ubuntu 20.10 上构建:
$ export PYTHONPATH=/usr/local/lib/python2.7/dist-packages/gtk-2.0:/usr/local/lib/python2.7/site-packages/:/usr/local/lib/python2.7/site-packages/gtk-2.0 $ ./configure --with-realtime=uspace --with-python=python2 --with-boost-python=boost_python27 $ BUILD_VERBOSE=1 make
查找构建失败:
如果我手动调整并运行最后一个命令,
-ltirpc
那么libnml.so.0
错误就会消失并linuxcncrsh
成功链接:通过以下补丁,我可以成功构建整个 LinuxCNC:
这是我期望发生的事情:
我希望 LinuxCNC 构建良好。
这是发生了什么:
相反,我遇到了一个链接问题。
有关我的硬件和软件的信息: