LINUX下编译C++程序的问题

kapil 2012-08-29 07:32:38
在子目录api下有几个头文件:api_1.h,api_2.h,api_3.h,api_4.h,其中api_1中包含了api_2.h

在当前目录下有一个文件重载了api_1.h,假设为new_api_1.h,还有一个new_api_1.cpp,然后有一个主程序main.cpp,调用了new_api_1.cpp。

请问如何编译这些C++程序,才能生成一个可以正确运行的C++应用程序呢?

开发环境:centos 5.5

我现在编译的结果总是提示: undefined reference to


多谢
...全文
118 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mujiok2003 2012-08-30
  • 打赏
  • 举报
回复
g++ -c new_api_1.cpp
g++ main.cpp new_api_1.o -o main
www_adintr_com 2012-08-30
  • 打赏
  • 举报
回复
编译的时候不用管 .h 文件, 只要正确的 #include 了, 能找到就行.
把 cpp 都在命令行里给出来就可以了:
g++ main.cpp new_api_1.cpp
如果还报 undefined reference 你就要看报的函数是什么了, 是你自己写的函数还是调用的某个库里的函数, 如果是库里的, 就用 -l 把库加进来, 比如你用了 pthread 库的话就这样编译
g++ -lpthread main.cpp new_api_1.cpp
yh_no_code 2012-08-30
  • 打赏
  • 举报
回复
把你的文件之间的包含关系说清了,。。。那没法知道啊,最好把文件头文件目录列好,让后将问一个源文件的前面包含文件的几行列出来。
linux-novice 2012-08-29
  • 打赏
  • 举报
回复
在当前目录下有一个文件重载了api_1.h?
是什么意思? 自己写makefile 吧。
图灵狗 2012-08-29
  • 打赏
  • 举报
回复
把整个目录文件打包发过来turingo@163.com看看。

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧