简体   繁体   中英

header file error with omnet++

i'm struggling to compile my code under omnet++ simulator (i am using mixim & veins framework), after including ContactCtrlInfo.h header file in BaseLayer.h

Here is the output:

fatal error: ContactCtrlInfo.h: No such file or directory

Here is my current project structure:

src
|_base
| |
| |_folder1
| |_folder2
| |_modules
| | |_BaseLayer.h
| | |_BaseLayer.cc
* *
| |_folderN
|
|_modules
| |_folder1
| |_folder2
| |_utility
| | |_contacts
| |   |_ContactCtrlInfo.h
| |   |_ContactCtrlInfo.cc
* *
| |_folderN

Here is my current makefiles:

#
# Usage:
#    make -f makemakefiles
# or, for Microsoft Visual C++:
#    nmake -f makemakefiles MMOPT=-n
#

MAKEMAKE=opp_makemake $(MMOPT)

all:
    cd tests/power && $(MAKEMAKE) -f --nolink -O out -d deviceTestAll -d utils -d deviceTest -d deviceTestMulti -d Nic80211Test -d deviceTestAccts -L../../out/$(CONFIGNAME)/tests/power/utils -L../../out/$(CONFIGNAME)/tests/testUtils -L../../out/$(CONFIGNAME)/src/base -L../../out/$(CONFIGNAME)/src/modules
    cd examples/Mac80211 && $(MAKEMAKE) -f -o Mac80211 -O out -L../../out/$(CONFIGNAME)/tests/power/utils -L../../out/$(CONFIGNAME)/tests/testUtils -L../../out/$(CONFIGNAME)/src/base -L../../out/$(CONFIGNAME)/src/modules -lmiximbase -lmiximmodules
    cd examples/ieee80211p && $(MAKEMAKE) -f -o ieee80211p -O out -L../../out/$(CONFIGNAME)/tests/power/utils -L../../out/$(CONFIGNAME)/tests/testUtils -L../../out/$(CONFIGNAME)/src/base -L../../out/$(CONFIGNAME)/src/modules -lmiximbase -lmiximmodules
    cd examples/multiConnectionManager && $(MAKEMAKE) -f -o multiConnectionManager -O out -L../../out/$(CONFIGNAME)/tests/power/utils -L../../out/$(CONFIGNAME)/tests/testUtils -L../../out/$(CONFIGNAME)/src/base -L../../out/$(CONFIGNAME)/src/modules -lmiximbase -lmiximmodules
    cd tests/power/deviceTestAll && $(MAKEMAKE) -f -o deviceTestAll -O out -u CMDENV -L../../../out/$(CONFIGNAME)/tests/power/utils -L../../../out/$(CONFIGNAME)/tests/testUtils -L../../../out/$(CONFIGNAME)/src/base -L../../../out/$(CONFIGNAME)/src/modules -lpowerTestUtils -lmiximbase -lmiximmodules
    cd tests/channelInfo && $(MAKEMAKE) -f -o channelInfo -O out -u CMDENV -I../../src/base/connectionManager -I../../src/base/messages -I../testUtils -I../../src/base/phyLayer -I../../src/base/modules -I../../src/base/utils -L../../out/$(CONFIGNAME)/tests/power/utils -L../../out/$(CONFIGNAME)/tests/testUtils -L../../out/$(CONFIGNAME)/src/base -L../../out/$(CONFIGNAME)/src/modules -lmiximbase -lmiximmodules -lmiximtestUtils
    cd examples/CSMAMac && $(MAKEMAKE) -f -o CSMAMac -O out -I../../src/base/connectionManager -I../../src/base/messages -I../../src/base/phyLayer -I../../src/base/modules -I../../src/base/utils -L../../out/$(CONFIGNAME)/tests/power/utils -L../../out/$(CONFIGNAME)/tests/testUtils -L../../out/$(CONFIGNAME)/src/base -L../../out/$(CONFIGNAME)/src/modules -lmiximbase -lmiximmodules
    cd tests/decider && $(MAKEMAKE) -f -o decider -O out -u CMDENV -I../testUtils -I../../src/base/messages -I../../src/modules/phy -I../../src/modules/utility -I../../src/modules -I../../src/modules/obstacle -I../../src/base/connectionManager -I../../src/modules/analogueModel -I../../src/modules/messages -I../../src/base/phyLayer -I../../src/base/modules -I../../src/modules/application/traci -I../../src/modules/mac/ieee80211p -I../../src/modules/application/ieee80211p -I../../src/base/utils -L../../out/$(CONFIGNAME)/tests/power/utils -L../../out/$(CONFIGNAME)/tests/testUtils -L../../out/$(CONFIGNAME)/src/base -L../../out/$(CONFIGNAME)/src/modules -lmiximbase -lmiximmodules -lmiximtestUtils
    cd tests/blackboard && $(MAKEMAKE) -f -o blackboard -O out -u CMDENV -I../../src/base/connectionManager -I../../src/base/messages -I../../src/base/phyLayer -I../../src/base/modules -I../../src/base/utils -L../../out/$(CONFIGNAME)/tests/power/utils -L../../out/$(CONFIGNAME)/tests/testUtils -L../../out/$(CONFIGNAME)/src/base -L../../out/$(CONFIGNAME)/src/modules -lmiximbase -lmiximmodules -lmiximtestUtils
    cd tests/coord && $(MAKEMAKE) -f -o coord -O out -u CMDENV -I../testUtils -I../../src/base/utils -L../../out/$(CONFIGNAME)/tests/power/utils -L../../out/$(CONFIGNAME)/tests/testUtils -L../../out/$(CONFIGNAME)/src/base -L../../out/$(CONFIGNAME)/src/modules -lmiximbase -lmiximmodules -lmiximtestUtils
    cd examples/bmac && $(MAKEMAKE) -f -o bmac -O out -L../../out/$(CONFIGNAME)/tests/power/utils -L../../out/$(CONFIGNAME)/tests/testUtils -L../../out/$(CONFIGNAME)/src/base -L../../out/$(CONFIGNAME)/src/modules -lmiximbase -lmiximmodules
    cd tests/basePhyLayer && $(MAKEMAKE) -f -o basePhyLayer -O out -u CMDENV -I../../src/base/connectionManager -I../../src/base/messages -I../testUtils -I../../src/base/phyLayer -I../../src/base/modules -I../../src/base/utils -L../../out/$(CONFIGNAME)/tests/power/utils -L../../out/$(CONFIGNAME)/tests/testUtils -L../../out/$(CONFIGNAME)/src/base -L../../out/$(CONFIGNAME)/src/modules -lmiximbase -lmiximmodules -lmiximtestUtils
    cd tests/power/utils && $(MAKEMAKE) -f --make-so -o powerTestUtils -O out -I../../../src/base/connectionManager -I../../../src/modules/power/battery -I../../../src/base/messages -I../../../src/base/phyLayer -I../../../src/base/modules -I../../../src/base/utils -L../../../out/$(CONFIGNAME)/tests/testUtils -L../../../out/$(CONFIGNAME)/src/base -L../../../out/$(CONFIGNAME)/src/modules -lmiximbase -lmiximmodules
    cd tests/radioState && $(MAKEMAKE) -f -o radioState -O out -u CMDENV -I../../src/base/connectionManager -I../../src/base/messages -I../testUtils -I../../src/base/phyLayer -I../../src/base/modules -I../../src/base/utils -L../../out/$(CONFIGNAME)/tests/power/utils -L../../out/$(CONFIGNAME)/tests/testUtils -L../../out/$(CONFIGNAME)/src/base -L../../out/$(CONFIGNAME)/src/modules -lmiximbase -lmiximmodules -lmiximtestUtils
    cd tests/connectionManager && $(MAKEMAKE) -f -o connectionManager -O out -u CMDENV -I../../src/base/connectionManager -I../../src/base/messages -I../testUtils -I../../src/base/phyLayer -I../../src/base/modules -I../../src/base/utils -L../../out/$(CONFIGNAME)/tests/power/utils -L../../out/$(CONFIGNAME)/tests/testUtils -L../../out/$(CONFIGNAME)/src/base -L../../out/$(CONFIGNAME)/src/modules -lmiximbase -lmiximmodules -lmiximtestUtils
    cd examples/obstacles && $(MAKEMAKE) -f -o obstacles -O out -L../../out/$(CONFIGNAME)/tests/power/utils -L../../out/$(CONFIGNAME)/tests/testUtils -L../../out/$(CONFIGNAME)/src/base -L../../out/$(CONFIGNAME)/src/modules -lmiximbase -lmiximmodules
    cd tests/power/deviceTest && $(MAKEMAKE) -f -o deviceTest -O out -u CMDENV -L../../../out/$(CONFIGNAME)/tests/power/utils -L../../../out/$(CONFIGNAME)/tests/testUtils -L../../../out/$(CONFIGNAME)/src/base -L../../../out/$(CONFIGNAME)/src/modules -lpowerTestUtils -lmiximbase -lmiximmodules
    cd examples/lmac && $(MAKEMAKE) -f -o lmac -O out -L../../out/$(CONFIGNAME)/tests/power/utils -L../../out/$(CONFIGNAME)/tests/testUtils -L../../out/$(CONFIGNAME)/src/base -L../../out/$(CONFIGNAME)/src/modules -lmiximbase -lmiximmodules
    cd examples/BaseMoBANNetwork && $(MAKEMAKE) -f -o BaseMoBANNetwork -O out -L../../out/$(CONFIGNAME)/tests/power/utils -L../../out/$(CONFIGNAME)/tests/testUtils -L../../out/$(CONFIGNAME)/src/base -L../../out/$(CONFIGNAME)/src/modules
    cd examples/veins && $(MAKEMAKE) -f -o veins -O out -L../../out/$(CONFIGNAME)/tests/power/utils -L../../out/$(CONFIGNAME)/tests/testUtils -L../../out/$(CONFIGNAME)/src/base -L../../out/$(CONFIGNAME)/src/modules -lmiximbase -lmiximmodules
    cd tests/power/deviceTestMulti && $(MAKEMAKE) -f -o deviceTestMulti -O out -L../../../out/$(CONFIGNAME)/tests/power/utils -L../../../out/$(CONFIGNAME)/tests/testUtils -L../../../out/$(CONFIGNAME)/src/base -L../../../out/$(CONFIGNAME)/src/modules -lpowerTestUtils -lmiximbase -lmiximmodules
    cd examples/ieee802154a && $(MAKEMAKE) -f -o ieee802154a -O out -L../../out/$(CONFIGNAME)/tests/power/utils -L../../out/$(CONFIGNAME)/tests/testUtils -L../../out/$(CONFIGNAME)/src/base -L../../out/$(CONFIGNAME)/src/modules -lmiximbase -lmiximmodules
    cd tests/testUtils && $(MAKEMAKE) -f --make-so -o miximtestUtils -O out -I../../src/base/utils -L../../out/$(CONFIGNAME)/tests/power/utils -L../../out/$(CONFIGNAME)/src/base -L../../out/$(CONFIGNAME)/src/modules
    cd examples/traci_launchd && $(MAKEMAKE) -f -o traci_launchd -O out -L../../out/$(CONFIGNAME)/tests/power/utils -L../../out/$(CONFIGNAME)/tests/testUtils -L../../out/$(CONFIGNAME)/src/base -L../../out/$(CONFIGNAME)/src/modules -lmiximbase -lmiximmodules
    cd tests/power/Nic80211Test && $(MAKEMAKE) -f -o Nic80211Test -O out -L../../../out/$(CONFIGNAME)/tests/power/utils -L../../../out/$(CONFIGNAME)/tests/testUtils -L../../../out/$(CONFIGNAME)/src/base -L../../../out/$(CONFIGNAME)/src/modules -lmiximbase -lmiximmodules
    cd examples/baseNetwork && $(MAKEMAKE) -f -o baseNetwork -O out -L../../out/$(CONFIGNAME)/tests/power/utils -L../../out/$(CONFIGNAME)/tests/testUtils -L../../out/$(CONFIGNAME)/src/base -L../../out/$(CONFIGNAME)/src/modules -lmiximbase -lmiximmodules
    $(MAKEMAKE) -f --nolink -O out -d src/base -d src/modules -d examples -d tests -L./out/$(CONFIGNAME)/tests/power/utils -L./out/$(CONFIGNAME)/tests/testUtils -L./out/$(CONFIGNAME)/src/base -L./out/$(CONFIGNAME)/src/modules
    cd examples/WSNRouting && $(MAKEMAKE) -f -o WSNRouting -O out -L../../out/$(CONFIGNAME)/tests/power/utils -L../../out/$(CONFIGNAME)/tests/testUtils -L../../out/$(CONFIGNAME)/src/base -L../../out/$(CONFIGNAME)/src/modules -lmiximbase -lmiximmodules
    cd examples/ieee802154Narrow && $(MAKEMAKE) -f -o ieee802154Narrow -O out -I../../src/base/messages -I../../src/modules/utility -I../../src/modules/phy -I../../src/modules -I../../src/modules/obstacle -I../../src/base/connectionManager -I../../src/modules/messages -I../../src/modules/analogueModel -I../../src/base/phyLayer -I../../src/base/modules -I../../src/modules/application/traci -I../../src/modules/mac/ieee80211p -I../../src/modules/application/ieee80211p -I../../src/base/utils -L../../out/$(CONFIGNAME)/tests/power/utils -L../../out/$(CONFIGNAME)/tests/testUtils -L../../out/$(CONFIGNAME)/src/base -L../../out/$(CONFIGNAME)/src/modules -lmiximbase -lmiximmodules
    cd src/base && $(MAKEMAKE) -f --deep --make-so -o miximbase -O out -L../../out/$(CONFIGNAME)/tests/power/utils -L../../out/$(CONFIGNAME)/tests/testUtils -L../../out/$(CONFIGNAME)/src/modules
    cd src/modules && $(MAKEMAKE) -f --deep --make-so -o miximmodules -O out -I../base/connectionManager -I../base/messages -I../base/phyLayer -I../base/modules -I../base/utils -L../../out/$(CONFIGNAME)/tests/power/utils -L../../out/$(CONFIGNAME)/tests/testUtils -L../../out/$(CONFIGNAME)/src/base -lmiximbase
    cd examples && $(MAKEMAKE) -f --nolink -O out -d Mac80211 -d ieee80211p -d multiConnectionManager -d CSMAMac -d bmac -d obstacles -d lmac -d BaseMoBANNetwork -d veins -d ieee802154a -d traci_launchd -d baseNetwork -d WSNRouting -d ieee802154Narrow -d twoRayInterference -d analogueModels -L../out/$(CONFIGNAME)/tests/power/utils -L../out/$(CONFIGNAME)/tests/testUtils -L../out/$(CONFIGNAME)/src/base -L../out/$(CONFIGNAME)/src/modules
    cd tests/traci && $(MAKEMAKE) -f -o traci -O out -u CMDENV -I../../src/base/connectionManager -I../../src/base/messages -I../../src/base/phyLayer -I../../src/base/modules -I../../src/base/utils -I../../src/modules -L../../out/$(CONFIGNAME)/tests/power/utils -L../../out/$(CONFIGNAME)/tests/testUtils -L../../out/$(CONFIGNAME)/src/base -L../../out/$(CONFIGNAME)/src/modules -lmiximbase -lmiximmodules -lmiximtestUtils
    cd examples/twoRayInterference && $(MAKEMAKE) -f -o twoRayInterference -O out -L../../out/$(CONFIGNAME)/tests/power/utils -L../../out/$(CONFIGNAME)/tests/testUtils -L../../out/$(CONFIGNAME)/src/base -L../../out/$(CONFIGNAME)/src/modules -lmiximbase -lmiximmodules
    cd tests && $(MAKEMAKE) -f --nolink -O out -d power -d channelInfo -d decider -d blackboard -d coord -d basePhyLayer -d radioState -d connectionManager -d testUtils -d traci -d baseMobility -d nicTest -d mapping -L../out/$(CONFIGNAME)/tests/power/utils -L../out/$(CONFIGNAME)/tests/testUtils -L../out/$(CONFIGNAME)/src/base -L../out/$(CONFIGNAME)/src/modules
    cd tests/baseMobility && $(MAKEMAKE) -f -o baseMobility -O out -u CMDENV -I../../src/base/connectionManager -I../../src/base/messages -I../../src/base/phyLayer -I../../src/base/modules -I../../src/base/utils -L../../out/$(CONFIGNAME)/tests/power/utils -L../../out/$(CONFIGNAME)/tests/testUtils -L../../out/$(CONFIGNAME)/src/base -L../../out/$(CONFIGNAME)/src/modules -lmiximbase -lmiximmodules -lmiximtestUtils
    cd tests/nicTest && $(MAKEMAKE) -f -o nicTest -O out -u CMDENV -I../../src/base/messages -I../../src/modules/phy -I../../src/modules/utility -I../../src/modules -I../../src/modules/obstacle -I../../src/modules/analogueModel -I../../src/modules/messages -I../../src/base/connectionManager -I../../src/modules/mac -I../../src/base/phyLayer -I../../src/base/modules -I../../src/modules/application/traci -I../../src/modules/mac/ieee80211p -I../../src/modules/application/ieee80211p -I../../src/base/utils -L../../out/$(CONFIGNAME)/tests/power/utils -L../../out/$(CONFIGNAME)/tests/testUtils -L../../out/$(CONFIGNAME)/src/base -L../../out/$(CONFIGNAME)/src/modules -lmiximbase -lmiximmodules -lmiximtestUtils
    cd tests/mapping && $(MAKEMAKE) -f -o mapping -O out -u CMDENV -I../../src/base/connectionManager -I../../src/base/messages -I../../src/base/phyLayer -I../../src/base/modules -I../../src/base/utils -L../../out/$(CONFIGNAME)/tests/power/utils -L../../out/$(CONFIGNAME)/tests/testUtils -L../../out/$(CONFIGNAME)/src/base -L../../out/$(CONFIGNAME)/src/modules -lmiximbase -lmiximmodules -lmiximtestUtils
    cd tests/power/deviceTestAccts && $(MAKEMAKE) -f -o deviceTestAccts -O out -u CMDENV -L../../../out/$(CONFIGNAME)/tests/power/utils -L../../../out/$(CONFIGNAME)/tests/testUtils -L../../../out/$(CONFIGNAME)/src/base -L../../../out/$(CONFIGNAME)/src/modules -lpowerTestUtils -lmiximbase -lmiximmodules
    cd examples/analogueModels && $(MAKEMAKE) -f -o analogueModels -O out -I../../src/base/messages -I../../src/modules/phy -I../../src/modules/utility -I../../src/modules -I../../src/modules/obstacle -I../../src/base/connectionManager -I../../src/modules/analogueModel -I../../src/modules/messages -I../../src/base/phyLayer -I../../src/base/modules -I../../src/modules/mac/ieee80211p -I../../src/modules/application/traci -I../../src/modules/application/ieee80211p -I../../src/base/utils -L../../out/$(CONFIGNAME)/tests/power/utils -L../../out/$(CONFIGNAME)/tests/testUtils -L../../out/$(CONFIGNAME)/src/base -L../../out/$(CONFIGNAME)/src/modules -lmiximbase -lmiximmodules

Can someone explain me why i am getting this error ? If i try to move ContactCtrlInfo class under base subfolder it's works but i don't want to do so.

Thanks,

Veins 3 still uses the MiXiM build system, which first builds a "base" library and then builds a "modules" library (both libraries are dynamically linked for running a simulation). The "base" library is meant to be dependent only upon components stored in the "base" folder, so when compiling the "base" library no files from the "modules" folder are included. This is why you get an error.

Note also that Veins 4 will use a different build system: here, all header files are available from everywhere, but their full path has to be specified always (eg, as #include "veins/modules/mobility/traci/TraCIColor.h" )

It appears that the compiler just can't find the header file.

Whenever you need to include header files that are not immediately in the folder that you are running the compiler from, you need to use the -I option to include another path of a folder to search.

For example, if your file is main.cpp and the folder you want to search for headers is include , simply add:

-Iinclude

to the command line.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM