Skip to content

mingw平台上使用-fopenmp选项进行链接的问题 #151

@KnightJun

Description

@KnightJun
Contributor

在使用xmake构建的时候出现了一个问题:
平台:mingw
由于我需要使用openmp,所以我在编译和链接的时候都加上了选项
add_cxxflags("-fopenmp")
add_shflags("-fopenmp")
在编译的过程没有问题,但是链接的时候并没有-fopenmp选项。查看详细输出是在编译的时候检查选项有效,链接的时候检查选项无效,我手动加上-fopenmp运行链接命令是可以成功链接的

编译的提示:checking for the flags(g++) -fopenmp ... ok
链接的提示:checking for the flags(g++) -fopenmp ... no

Activity

changed the title [-]mingw平台上使用-fopenmp选项进行连接的问题[/-] [+]mingw平台上使用-fopenmp选项进行链接的问题[/+] on Nov 13, 2017
waruqi

waruqi commented on Nov 14, 2017

@waruqi
Member

我现在暂时没有 win/mingw的环境,你可以到xmake的安装目录下,修改下 xmake/modules/detect/tools/gcc/has_flags.lua 脚本,把里面的 os.nuldev() 批量替换成os.tmpfile() 后,在重新 xmake f -c; xmake -r -v清下缓存配置,检测下试试。。

如果ok,我之后提交下修复,如果还不行,可以帮忙加点print, 在_check_try_running()/islinker/里面的那个 try 块调下看看。。

KnightJun

KnightJun commented on Nov 14, 2017

@KnightJun
ContributorAuthor

@waruqi 按照你说的改了脚本之后,链接的时候能检测到-fopenmp,可是编译的时候检测不到-fopenmp选项

waruqi

waruqi commented on Nov 14, 2017

@waruqi
Member

大概了解了,你可以先就改下islinker分支里面的那个nuldev:

if islinker then
     os.nuldev() -> os.tmpfile()
end

之后我再做个更好的修复。

KnightJun

KnightJun commented on Nov 14, 2017

@KnightJun
ContributorAuthor

问题解决,十分感谢,另外有一个小问题,在windows用mingw 生成动态链接库的时候链接选项要加上“-Wl,--out-implib,$(buildir)/lib***.a”所生成的动态链接库才能使用,xmake默认是没有加上这个的,希望下次更新的时候能加到默认的选项中

waruqi

waruqi commented on Nov 14, 2017

@waruqi
Member

好的 等我装完环境后 这块改进下

waruqi

waruqi commented on Nov 16, 2017

@waruqi
Member

我更新了下 安装包,对mingw/windows下进行了一些改进,修复了 -fopenmp的问题,并且动态库自动加上了 -Wl,--out-implib

你可以试试:xmake-v2.1.9-dev

也可以从release v2.1.8下面,找到相关文件进行下载安装。xmake-v2.1.9-dev

RoyiAvital

RoyiAvital commented on Sep 30, 2020

@RoyiAvital

I think OpenMP should have a dedicated feature.
Something like add_openmp("true") and xmake will do the rest (Compilation and linker flags).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @waruqi@RoyiAvital@KnightJun

        Issue actions

          mingw平台上使用-fopenmp选项进行链接的问题 · Issue #151 · xmake-io/xmake