1
我完全是cmake的新手。一个svn更新后(也binutils的,我怀疑这是造成这个问题),我得到一个错误(我成功地编译和之前所使用的程序)CMAKE DSO链接
Linking CXX executable gmsh
/usr/bin/ld: /usr/local/lib/liblapack.a(dgesvd.o): undefined reference to symbol '[email protected]@GFORTRAN_1.0'
/usr/bin/ld: note: '[email protected]@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.3
添加到GMSH_EXTERNAL_LIBRARIES
变量中,以便按照新的Makefiles的顺序[g] generate
)。
我也试过在cmake irc chat中加入一些推荐的选项,但最终没有奏效。
cmake . -DCMAKE_LINK_FLAGS=-Wl,--add-needed
或
cmake . -DCMAKE_LINK_FLAGS=-lgfortran
在相同的误差引起。我能做什么?
其他信息:make VERBOSE=1
pastebin link
你试过'cmake。 -DCMAKE_LINK_LIBRARY_FLAG = gfortran'? – Fraser
@Fraser我刚刚尝试过,但它产生完全相同的错误。我想我所需要做的就是在'ld'调用中加入'-lgfortran'。 – Sebastian
这通常可以通过在适当的CMakeLists中向['target_link_libraries'](http://www.cmake.org/cmake/help/v2.8.10/cmake.html#command:target_link_libraries)调用添加'gfortran'来实现.txt – Fraser