gpt4 book ai didi

c++ - 在 Eclipse CDT 中包含来自另一个 C++ 项目的源文件

转载 作者:IT老高 更新时间:2023-10-28 22:26:37 26 4
gpt4 key购买 nike

我在 Eclipse CDT 中有一个 C++ 项目,它使用来自 OpevCV 的一些函数,它编译成可执行文件并且工作正常。现在我想要一个新的 C++ 项目,它使用第一个中定义的一些函数。我无法将两者编译并链接在一起。

我在新项目的相关文件中有#include "...",我已经将旧项目添加到新项目的引用项目和新项目,我已将旧项目的源文件夹添加为包含(-I gcc 选项)。

我附上了我的 Eclipse 的屏幕截图,以防有用:

enter image description here

编译器给出的错误是:

Building target: OtherProject
Invoking: GCC C++ Linker
g++ -o "OtherProject" ./src/foo.o
./src/foo.o: In function `main':
/home/max/opencvjni/OtherProject/Debug/../src/foo.cpp:13: undefined reference to threshold()'
collect2: ld returned 1 exit status
make: *** [OtherProject] Error 1

这是屏幕截图其他选项卡中其他文件中的代码:

Threshold.cpp

#include <cv.h>
#include <highgui.h>
#include "Threshold.h"

using namespace cv;

int threshold(void) {
Mat img = imread("/home/max/opencvjni/monalisa.jpg", 0);
threshold(img, img, 127, 255, THRESH_BINARY);
imwrite("/home/max/opencvjni/monathresh.jpg", img);
return 0;
}

int main(void) {
threshold();
return 0;
}

Threshold.h

#ifndef THRESHOLD_H_
#define THRESHOLD_H_

int threshold(void);

#endif /* THRESHOLD_H_ */[/code]
  • Eclipse 版本:3.7.2
  • CDT 版本:8.0.2.201202111925
  • 操作系统:Ubuntu 12.04

感谢您看我的帖子,如果没有办法这样做,或者换一种方式更明智,请不要犹豫。

问候

最佳答案

我也在寻找答案,但以前的答案并没有解决问题。 (尼克的回答很有帮助)。你必须定义两件事:

  1. 转到Project->Properties->C/C++ general->Paths and Symbols。选择Source Location选项卡并点击Link Folder...,然后选择你要包含的文件夹。
  2. 转到Project->Properties->C/C++ general->Paths and Symbols。选择 包含 选项卡。确保在左侧菜单中选择了正确的语言(例如:GNU C++)并单击Add...,然后选择要包含的文件夹。<

注意:我不确定是否有必要,但是当我创建外部项目时,我在新项目向导中选择了“共享库”选项。

为确保一切正常,请转到:Project->Properties->C/C++ Build->Settings。选择 GCC C++ Linker 并确保 All options 包含“-L/your_folder_name”。对 GCC C++ 编译器 也重复此操作。

关于c++ - 在 Eclipse CDT 中包含来自另一个 C++ 项目的源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13240893/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com