Linker CMAKE DSO链接
我对cmake完全陌生。在svn更新之后,也更新到了binutils,我怀疑这是导致问题的原因,我得到了一个错误,我以前成功编译并使用过该程序Linker CMAKE DSO链接,linker,cmake,shared-libraries,ld,Linker,Cmake,Shared Libraries,Ld,我对cmake完全陌生。在svn更新之后,也更新到了binutils,我怀疑这是导致问题的原因,我得到了一个错误,我以前成功编译并使用过该程序 Linking CXX executable gmsh /usr/bin/ld: /usr/local/lib/liblapack.a(dgesvd.o): undefined reference to symbol '_gfortran_concat_string@@GFORTRAN_1.0' /usr/bin/ld: note: '_gfortran
Linking CXX executable gmsh
/usr/bin/ld: /usr/local/lib/liblapack.a(dgesvd.o): undefined reference to symbol '_gfortran_concat_string@@GFORTRAN_1.0'
/usr/bin/ld: note: '_gfortran_concat_string@@GFORTRAN_1.0' is defined in DSO /usr/lib/libgfortran.so.3 so try adding it to the linker command line
/usr/lib/libgfortran.so.3: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status
make[2]: *** [gmsh] Error 1
make[1]: *** [CMakeFiles/gmsh.dir/all] Error 2
make: *** [all] Error 2
也许和这有关
我有一个最新的archlinux binutils-2.23-1
我试图编辑ccmake中的行。菜单点击[c]后,原始选项被还原,因此我无法将/usr/lib/libgfortran.so.3添加到GMSH_EXTERNAL_LIBRARIES变量中,以便[g]生成新的makefile
我还尝试添加了一些在cmake irc聊天中推荐的选项,但最终没有成功
cmake . -DCMAKE_LINK_FLAGS=-Wl,--add-needed
或
导致相同的错误。我能做什么
其他信息:make VERBOSE=1要将库添加到link命令,可以使用。显然,在这种情况下,您需要:
target_link_libraries(gmsh ${LINK_LIBRARIES} gfortran)
要将库添加到link命令,可以使用。显然,在这种情况下,您需要:
target_link_libraries(gmsh ${LINK_LIBRARIES} gfortran)
你有没有试过做什么-DCMAKE\u LINK\u LIBRARY\u FLAG=gfortran?@Fraser我刚刚试过,但它产生了完全相同的错误。我想我需要实现的就是将-lgfortran添加到ld调用中。这通常可以通过在适当的CMakeLists中将gfortran添加到调用中来实现。txt@Fraser如果你回答这个问题,我会接受的,因为这很有效!target_link_librariesgmsh${link_LIBRARIES}gfortranDid您可以尝试制作-DCMAKE\u LINK\u LIBRARY\u FLAG=gfortran?@Fraser我刚刚试过,但它产生了完全相同的错误。我想我需要实现的就是将-lgfortran添加到ld调用中。这通常可以通过在适当的CMakeLists中将gfortran添加到调用中来实现。txt@Fraser如果你回答这个问题,我会接受的,因为这很有效!target_link_librariesgmsh${link_LIBRARIES}gfortran