1

我对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_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

也许它与这个Fedoraproject DSO Change有关?

我有一个最新的 archlinux (binutils-2.23-1)。

我试图编辑ccmake .菜单中的行。点击 [c] 后,原始选项被恢复(因此我无法添加/usr/lib/libgfortran.so.3GMSH_EXTERNAL_LIBRARIES变量中以订购 [g] generate新的 Makefile)。

我还尝试添加一些在cmake irc chat中推荐的选项,但最终没有奏效。

 cmake . -DCMAKE_LINK_FLAGS=-Wl,--add-needed

或者

 cmake . -DCMAKE_LINK_FLAGS=-lgfortran

导致同样的错误。我能做些什么?

附加信息:make VERBOSE=1 pastebin 链接

4

1 回答 1

4

要将库添加到链接命令,您可以使用target_link_libraries. 显然在这种情况下你想要:

target_link_libraries(gmsh ${LINK_LIBRARIES} gfortran)
于 2012-11-06T20:42:30.030 回答