Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Omnet++ 在OMNeT IDE中导入外部对象文件_Omnet++ - Fatal编程技术网

Omnet++ 在OMNeT IDE中导入外部对象文件

Omnet++ 在OMNeT IDE中导入外部对象文件,omnet++,Omnet++,我有来自另一个项目的预先编写的函数,我想将其作为模拟的一部分。我有这些函数的目标文件(functions.a)和头文件(functions.h) 在一个普通的C/C++项目中,我能够使用本文概述的步骤导入它们。但是,我的项目是作为OMNeT++项目创建的,并且C/C++构建->设置->GCC C链接器->杂项属性似乎不可用 有没有办法访问这些属性,或者在OMNeT项目中导入对象文件的其他替代方法 编辑 我试着加上 EXTRA_OBJS += -L/home/jacques/omnetpp-6.0

我有来自另一个项目的预先编写的函数,我想将其作为模拟的一部分。我有这些函数的目标文件(functions.a)和头文件(functions.h)

在一个普通的C/C++项目中,我能够使用本文概述的步骤导入它们。但是,我的项目是作为OMNeT++项目创建的,并且
C/C++构建->设置->GCC C链接器->杂项
属性似乎不可用

有没有办法访问这些属性,或者在OMNeT项目中导入对象文件的其他替代方法

编辑

我试着加上

EXTRA_OBJS += -L/home/jacques/omnetpp-6.0pre10/workspace/model1t2/externalObjects/HM4 -lfunctions
CFLAGS += -I/home/jacques/omnetpp-6.0pre10/workspace/model1t2/externalObjects/include
但我得到了下面的错误

make MODE=release V=1 all 
cd src && make
make[1]: Entering directory '/home/jacques/omnetpp-6.0pre10/workspace/model1t2/src'
Creating executable: ../out/clang-release/src/model1t2
clang++   -fuse-ld=lld -Wl,-rpath,/home/jacques/omnetpp-6.0pre10/lib -Wl,-rpath,/lib -Wl,-rpath,.  -Wl,--export-dynamic -L/home/jacques/omnetpp-6.0pre10/lib -o ../out/clang-release/src/model1t2 ../out/clang-release/src/M1M.o ../out/clang-release/src/M1M_m.o  -L/home/jacques/omnetpp-6.0pre10/workspace/model1t2/externalObjects/HM4 -lfunctions -Wl,--no-as-needed -Wl,--whole-archive  -Wl,--no-whole-archive -loppmain -Wl,-u,_cmdenv_lib -Wl,--no-as-needed -loppcmdenv -loppenvir -Wl,-u,_qtenv_lib -Wl,--no-as-needed -Wl,-rpath-link=/usr/lib/x86_64-linux-gnu -loppqtenv -loppenvir -lopplayout  -loppsim -ldl -lstdc++ 
ld.lld: error: unable to find library -lfunctions
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [Makefile:100: ../out/clang-release/src/model1t2] Error 1
make[1]: Leaving directory '/home/jacques/omnetpp-6.0pre10/workspace/model1t2/src'
make: *** [Makefile:2: all] Error 2
"make MODE=release V=1 all" terminated with exit code 2. Build might be incomplete.

OMNeT++项目使用Makefile,因此要添加外部库或类,应修改makefrag。
您应该转到
Project
|
Properties
|
OMNeT++
|
Makemake
|选择项目的root或
src
选项,然后
自定义
Makefrag
,并编写以下行:

EXTRA_OBJS += -LD:/foo/lib -lfunctions
CFLAGS += -ID:/foo/include

其中
D:/foo/lib
是Windows目录的一个示例,其中包含一个库(例如libfunctions.a)和
D:/foo/include
-头文件。

我遵循了您概述的步骤,但不断收到此错误
ld.lld:错误:无法找到库-lffunctions
。我用
V=1
打开了详细模式,但没有任何帮助。为了确保这一点,我在要插入Makefile的
片段字段中输入了它?我没有自定义下的
makefrag
。如果有帮助的话,我在Ubuntucu上的omnet-6.0pre10上,你能在Makefrag中显示你的条目以及libfunctions的路径吗?我的src文件夹中有以下
markfrag
文件
EXTRA_OBJS+=-L/home/jacques/omnetpp-6.0pre10/workspace/model1t2/externalObjects/HM4-lffunctions
CFLAGS+=-I/home/jacques/omnetpp-6.0pre10/workspace/model1t2/externalObjects/inlcude
我的文件函数。a位于路径
/home/jacques/omnetpp-6.0pre10/workspace/model1t2/externalObjects/HM4/functions中。a
函数更改为
libfunctions.a
。我进行了更改,并尝试了
-lffunctions
-llib在
markfrag
中运行
,并得到相同的错误。