首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用gprbuild链接math.h

使用gprbuild链接math.h
EN

Stack Overflow用户
提问于 2021-03-09 17:49:43
回答 1查看 60关注 0票数 3

我正在尝试构建一个调用C代码的Ada应用程序。C代码使用math.h中的函数sqrt。如果我删除对sqrt的调用,编译和链接就可以完美地工作。当我尝试调用sqrt时,链接器告诉我undefined reference to sqrt

这是我的gpr文件:

代码语言:javascript
复制
project Struct_Interfacing is
    for Languages use ("Ada", "C");

    for Source_Dirs use ("src");
    for Object_Dir use "obj";
    for Exec_Dir use ".";

    for Main use ("struct_interfacing.adb");

    package Compiler is
        C_Switches := ("-pedantic", "-Wall", "-Werror");
        for Default_Switches("C") use C_Switches;
    end Compiler;

    package Linker is
        for Default_Switches("C") use ("-lm");
    end Linker;
end Struct_Interfacing;

我认为解决方案应该是for Default_Switches("C") use ("-lm");,但它仍然不起作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-09 18:33:23

你的主程序是用Ada编写的,所以你应该告诉你的编译器把Ada和-lm链接起来,即使调用是从C:

代码语言:javascript
复制
    package Linker is
        for Default_Switches("Ada") use ("-lm");
    end Linker;
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66544525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档