Max*_*cer 15 c++ eclipse eclipse-cdt
我在Eclipse CDT中有一个C++项目,它使用了一些来自OpevCV的函数,它编译成一个可执行文件,工作正常.现在我想要一个新的C++项目,该项目使用第一个中定义的一些函数.我无法将两者编译并链接在一起.
我已经#include "..."
在新项目的相关文件中,我已将旧项目添加到新项目的引用项目中,并且在新项目的构建设置中,我已将旧项目的源文件夹添加为包含(-I
gcc选项).
我附上了Eclipse的截图,以防它有用:
编译器给出的错误是:
构建目标:OtherProject
调用:GCC C++链接器
克++ -o "OtherProject" ./src/foo.o
./src/foo.o:在函数'主:
/home/max/opencvjni/OtherProject/Debug/../ src/foo.cpp:13:未定义引用threshold()'
collect2:ld返回1退出状态
make:***[OtherProject]错误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;
}
Run Code Online (Sandbox Code Playgroud)
Threshold.h
#ifndef THRESHOLD_H_
#define THRESHOLD_H_
int threshold(void);
#endif /* THRESHOLD_H_ */[/code]
Run Code Online (Sandbox Code Playgroud)
感谢您查看我的帖子,如果没有办法做到这一点,或者以另一种方式做事更为明智,请不要犹豫,这样说.
问候
Ita*_*Gal 15
我也在寻找答案,但之前的答案并没有解决问题.(尼克的回答很有帮助).你必须定义两件事:
Project->Properties->C/C++ general->Paths and Symbols
.选择Source Location
选项卡Link Folder...
,然后单击,然后选择要包括的文件夹.Project->Properties->C/C++ general->Paths and Symbols
.选择Includes
选项卡.确保在左侧菜单中选择了正确的语言(例如GNU C++
:) Add...
,然后单击,然后选择要包含的文件夹.注意:我不确定是否有必要,但在创建外部项目时,我在新项目向导中选择了"共享库"选项.
为了确保你做的一切都好,请转到:Project->Properties->C/C++ Build->Settings
.选择GCC C++ Linker
并确保All options
包含"-L/your_folder_name".也重复这个GCC C++ Compiler
.
小智 7
转到项目 - >属性 - > C/C++ general->路径和符号.选择"源位置"选项卡,然后单击"链接文件夹..."按钮.您应该能够选择包含要引用的项目的目录.该项目的所有源文件都将包含在当前项目中.无论如何,对我有用.
归档时间: |
|
查看次数: |
14355 次 |
最近记录: |