作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个完整的 Ada 项目,我想构建它以获得一个动态 dll。因此,我必须将它与另一个静态库 (myanotherlibrary.lib) 链接起来。
我使用这个命令行:
gprbuild -d "D:\My_grp_project\My_grp_project.gpr"
这里是 .gpr 的内容:
project My_grp_project is
Architecture := "x86";
for Languages use ("Ada");
for Source_Dirs use (".", "source", "source\common");
for Library_Dir use "dll\" & Architecture;
for Library_Ali_Dir use "ali\" & Architecture;
for Library_Name use "My_grp_project";
for Library_Kind use "dynamic";
for Object_Dir use "obj\" & Architecture;
package Linker is
for Default_Switches ("Ada") use ("-L.", "-lbar");
end Linker;
end My_grp_project;
我把“myanotherlibrary.lib”放在目录“D:\My_grp_project\”中,但它仍然没有链接:“undefined reference to ...”
有人能帮帮我吗?
问候格伦
最佳答案
查看 docs ,我认为您应该使用 Library_Options
属性而不是 package Linker
:
for Library_Options use ("-L.", "-lbar”);
(我很困惑 - 你是说 myanotherlibrary.lib
还是 bar.lib
?)
我有点担心从动态库中使用静态库:我希望使用 -fPIC
或等效开关构建动态库以获得与位置无关的代码,这样就可以在每个使用它的可执行文件的不同地址看到相同的加载库二进制文件。
关于c++ - gnat gprbuild : how to build a dynamic dll and link with a static c++ library,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25117653/
我是一名优秀的程序员,十分优秀!