http://bbs.csdn.net/topics/390239632

kerosun
kerosun
等级:
结帖率:96.92%
楼主 发表于: 2012-10-11 12:00:51
 

比如有一个tools工程,提供给其他工程通用的工具函数。
我现在的做法就只能是ctrl+c|ctrl+v
一旦工具函数发生变化,还需要在用到这些函数的工程中更新,比较麻烦。
看到eclipse工程属性设置中有Project References,但是一直不会用。
那位好心人能说说怎样实现我的需求。

回复次数:3

kerosun

kerosun
等级:

#1
得分:0

回复于:
2012-10-11 18:28:24

仔细弄了一下过程如下:
1.右键需要引入tools工程的工程→Project References→勾选tools工程。
2.C/C++ General→Paths and Symbols→Include→加入需要引入文件的路径。
3.在工程中使用tools的源文件中加入include语句#include <tools.h>
4.编译工程时提示undefined reference to `stringLower(std::string const&)'
(stringLower是tools中定义的一个函数)
5.试着加入#include <tools.cpp>,编译通过。
6.删除#include <tools.h>,仍然编译通过。
总感觉是eclipse cdt的bug,按道理#include <tools.h>以后就应该可以了,还要加#include <tools.cpp>这么奇怪的语句。

kerosun

kerosun
等级:

#2
得分:0

回复于:
2012-10-12 11:18:35

我对eclipse的使用还不熟悉,昨天又捣鼓了一下,暂时就先这样吧。
操作过程如下:
1.打开tools工程。
2.右键需要引入tools工程的工程→Project References→勾选tools工程。
3.C/C++ General→Paths and Symbols→Include→加入需要引入文件的路径。
4.在工程中使用tools的源文件中加入include语句#include <tools.h>
5.ctrl+鼠标左键单击tools工程中的tools.h和tools.cpp,然后按住ctrl把其拖放至调用tools的工程中。
  此时系统会显示文件操作对话框,选择Link to file在工厂中放一个文件的连接。
6.编写使用tools的代码,此时可以正常编译成功。

如果需要对tools中的函数进行修改,那么不管操作本工程中的文件连接,还是操作tools工程中的源文件,都是同样的效果,这样就不会导致文件不同步的问题。

defonds
Defonds
等级:
3

#3
得分:40

回复于:
2012-10-14 13:18:26

linux + eclipse + cdt 报错undefined reference......好麻烦的,这位大牛给出的方法可行,特此MARK!!!!的更多相关文章

  1. windows下codeblocks报错undefined reference to `WSAStartup@8'|

    Windows下C++Socket编程,调用WSAStartup函数报错:undefined reference to `WSAStartup@8'| 本人使用的是Codeblocks MinGW M ...

  2. 执行安装redis报错undefined reference to `__sync_add_and_fetch_4'

    执行make命令时报错:   zmalloc.o: In function `zmalloc_used_memory': /var/lib/tcommsvr/redis-2.8.0-rc4/src/z ...

  3. centos7 安装PHP5.3 报错undefined reference to symbol '__gxx_personality_v0@@CXXABI_1.3'

    系统:centos 7 原有PHP版本:5.6.27,5.4.45 试着安装nginx+多php版本,首先安装了5.6和5.4的版本,一帆风顺,但是在安装5.3.29版本时,出现问题了,configu ...

  4. cocos2d-x android 添加新场景报错: undefined reference to `vtable for XXX'

    转载自 居家懒人 http://www.cnblogs.com/JD85/archive/2012/09/17/2688128.html 加入写了新场景SecondScene,结果在cpp文件里类名地 ...

  5. boost.numpy编译报错:undefined reference to `PyInt_FromLong' libboost_numpy.so: undefined reference to `PyCObject_AsVoidPtr'

    [ 31%] Built target boost_numpy[ 36%] Building CXX object libs/numpy/example/CMakeFiles/dtype.dir/dt ...

  6. Linux-Linux下安装redis报错"undefined reference to__sync_add_and_fetch_4"解决办法

    如果出现这种错误可以在make的时候加上CFLAGS="-march=i686" 即 make CFLAGS="-march=i686" ----------- ...

  7. c++ 静态变量报错 undefined reference to static members

    c++中静态变量不但要在头文件中declare,还要在实现的cpp中declare.当然也可以赋个初始值. class foo { int _i; public: foo(int i) : _i(i) ...

  8. Linux嵌入式学习-Mplayer交叉编译-undefined reference to `clock_gettime' MPlayer

    編譯Mplayera. 配置.configure# ./configure --host-cc=gcc --cc=arm-linux-gcc --target=arm --enable-static ...

  9. The command ("dfs.browser.action.delete") is undefined 解决Hadoop Eclipse插件报错

    Hadoop Eclipse插件 报错. 使用 hadoop-eclipse-kepler-plugin-2.2.0.jar 如下所示 Error Log 强迫症看了 受不了 The command ...

随机推荐

  1. HihoCoder - 1093 小Hi和小Ho (SPFA)

    描述 万圣节的晚上,小Hi和小Ho在吃过晚饭之后,来到了一个巨大的鬼屋! 鬼屋中一共有N个地点,分别编号为1..N,这N个地点之间互相有一些道路连通,两个地点之间可能有多条道路连通,但是并不存在一条两 ...

  2. 将地址转成blob格式(服务器下运行)

    <div id="forAppend" class="demo"></div> <script> var eleAppend ...

  3. EF6 MySQL错误之“Specified key was too long; max key length is 767 bytes”

    由于 MySQL Innodb 引擎表索引字段长度的限制为 767 字节,因此对于多字节字符集的大字段(或者多字段组合索引),创建索引会出现上面的错误. 以 utf8mb4 字符集 字符串类型字段为例 ...

  4. javascript Math取整&获取随机数

    1.方法介绍 Math.ceil(n) 上取整,大于等于n返回与它最接近的整数 Math.floor(n) 下取整,小于等于n返回与它最接近的整数 Math.round(n) 四舍五入取整 Math. ...

  5. 通过css样式给表格tbody加垂直滚动条

    tbody加滚动条实现思路: 1,把tbody设置成display:block,然后就对其高度设置一个固定值,overflow设置成auto. 2,把thead的tr设置成display:block. ...

  6. JavaScript实现生成指定范围随机数和一个包含不重复数的随机数组

    目前JavaScript里面还没有现成的方法可以实现这个简单地需求,我们就需要自己写代码了. 在js中有个函数:Math.random() 这个函数可以生成 [0,1) 的一个随机数. 我们的简单的改 ...

  7. Perl脚本通过Expect登陆多台设备批量执行命令并Log

    本例子尝试使用Perl脚本借助Expect模块实现如下目的: 登陆多台设备 设备登陆信息按如下格式存放于文件中. $ cat hosts.txt 192.168.30.7:node1:telnet:b ...

  8. basename 显示文件名或目录名

    1. 命令功能 basename 显示文件名或目录名,不显示文件的全路径文件名 2. 语法格式 basename  文件路径名 3. 使用范例 [root@localhost data]# basen ...

  9. 【Leetcode周赛】比赛目录索引

    contest 1 ~ contest 10: contest 11 ~ contest 20: contest 21 ~ contest 30 : https://www.cnblogs.com/z ...

  10. [CF] E. Camels

    CF 2000 的dp题目还是有点难qwq 题意: 一行有\(n\)个空位,每个空位可以填\([1,4]\)的整数,要求: 1.有\(t\)个位置满足 \(ai−1<ai>ai+1(1&l ...