如何从源代码编译使用头文件的应用程序
How to compile an application that uses head files from source?
这个问题可能已经被回答了无数次——我读过一些模拟问题,但我仍然不理解。
我有libaiml项目的来源——aiml的C++interepter——一个话匣子程序的规范。
在示例程序的源代码中,它包含对头文件的#include调用:
#include "../src/aiml.h"
头文件在那里,我编译并链接了程序,它声明找不到头文件。
各种答案都指出,头文件需要编译成静态库(.a文件),但如果没有编译成库二进制文件,程序将如何引用.h文件?
我还试图用G++和ar将src编译成一个库,但它包含了很多错误。我做错什么了吗?
我做错什么了吗?
是的:你完全错误地陈述了发生在你身上的事情。你说"它声明找不到头文件","我编译并链接了程序"。
但真正发生的是,你已经编译了,链接程序失败,错误与头文件无关;相反,您在链接时会丢失符号。
要解决问题,必须将libaiml
库链接到可执行文件(该库应该是在../src/
目录中构建时构建的
g++ -I../src -o program program.cc -L../src -laiml
相关文章:
- 使用VerQueryValue检索应用程序的文件描述
- 在安卓应用程序中使用.exe文件
- 为什么从文件获取图标时应用程序有时会崩溃?
- make 命令创建 .file,但不创建应用程序文件
- 如何在Windows窗体应用程序中打开txt文件并将行导入文本框
- 在不打开应用程序的情况下在MinGW c++中播放声音(.wav)文件
- 将文件从 iOS 应用程序加载到 C++ 对象中/<iostream>iOS 上的问题
- 从Qt应用程序执行MSI文件
- 根据应用程序是否已自动化显示不同的 QML 文件
- 在应用程序启动时读取文件
- 如何从二进制文件中获取应用程序的版本号?
- 如何在 CentOS 7 中为应用程序生成具有完整回溯C++的核心转储文件
- 如何将SQLite c文件(合并)与cpp应用程序链接?
- 从头开始为使用Qt的应用程序制作简约的构建文件
- VS Express 2015 Win10 应用程序 - ifstream 无法打开文件
- Linux 从永远在线的应用程序中创建和删除文件
- 如何通过C++库读取与安卓应用程序打包的文件?
- 如何将 QML 文件分配给主窗口/应用程序
- 程序'main.exe'运行失败:指定的可执行文件不是此操作系统平台的有效应用程序
- 如何在windows中以编程方式关闭打开的文件/应用程序