【问题标题】:fortran undefined reference to popcnt_fortran 未定义对 popcnt_ 的引用
【发布时间】:2012-09-15 01:45:32
【问题描述】:

我正在尝试编译一个调用 POPCNT 的 fortran 90 程序,如下所示:

 ...
 print *, popcnt(127)
 ...

编译如下:

 gfortran prog.f90 

它给了我以下信息:

 ...: undefined reference to `popcnt_'

请问谁能推荐正确的编译方式?谢谢。

【问题讨论】:

  • popcnt 是用户定义的函数吗?如果是这样,它位于哪里?如果不在prog.f90 中,则必须对其进行编译并将两者链接在一起。让我们知道它在哪里。
  • @yosukesabai gcc.gnu.org/onlinedocs/gfortran/POPCNT.html 提前致谢!
  • 您的 gfortran 可以采用 -std=f2008 选项吗?即gfortran -std=2008 prog.f90?我在 cygwin 和 redhat 上的版本都无法识别 potcnt 并且无法识别 -std=2008 选项。所以也许你必须以某种方式获得最新版本的 gfortran(我的版本是 GNU Fortran (GCC) 4.1.2 20080704 (Red Hat 4.1.2-52))
  • @yosukesabai 我确实使用“gfortran -std=f2008 prog.f90”编译它,它仍然说未定义对 popcnt 的引用。
  • 我用 pgf95 (www.pgroup.com) 进行了测试,我在三行中打印了一些数字。所以看起来像是支持你的特定版本编译器的 f2008 功能。

标签: fortran fortran90


【解决方案1】:

在 4.6 版中添加了对 bitcnt 的支持 http://gcc.gnu.org/wiki/GFortran#GCC4.6。所以你必须找到更新的可执行文件,或者自己编译。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多