未明确引用`std :: chrono :: _ V2 :: system_clock :: now()'当与gfortran联系时

时间:2016-10-28 14:52:17

标签: c++ linker fortran c++14 gfortran

我正在尝试在INSEL中创建一个用户定义的块,它需要C ++来编程,我用gfortran链接它。

我的程序中有以下代码

// Setting seed for random number generators
unsigned seed = static_cast<int> (std::chrono::system_clock::now().time_since_epoch().count());

设置为随机数生成器的种子。当我使用g ++(gcc v.5.1.0)编译它时,它没有显示错误或警告。我的编译命令是

g++ -O0 -Wall -c -g3 -std=c++14 -fmessage-length=0 $(sourcesC)

sourcecC拥有我所有的.cpp程序。当我尝试使用gfortran链接它时,请尝试:

gfortran -shared -o C:\***\inselUB.dll -Wall -L./ -linselTools $(objects) 

我收到错误:

  

C:*** \ resources /../ src / constants.h:54:未定义引用   `的std ::计时:: _ V2 :: SYSTEM_CLOCK ::现在()&#39;

     

collect2.exe:错误:ld返回1退出状态makefile:11:recipe for   目标&#39; inselUB&#39;失败

     

make:*** [inselUB]错误1

我只是这种接口的初学者。可能是一个简单的错误。有谁能建议我解决方案?

操作系统:赢7

1 个答案:

答案 0 :(得分:2)

通常,在将C ++对象与gfortran链接时,需要链接-lstdc++。如果您使用g ++进行链接,则必须链接-lgfortran