Reputation: 625
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,
Upvotes: 0
Views: 1480
Reputation: 6943
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 (e.g., as #include "veins/modules/mobility/traci/TraCIColor.h"
)
Upvotes: 3
Reputation: 6190
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.
Upvotes: 1