【问题标题】:Reference header from other project in Omnet++来自 Omnet++ 中其他项目的参考标头
【发布时间】:2018-05-25 03:29:03
【问题描述】:

我目前正在尝试使用 C++ 代码构建一个共享库,我可以在多个 Omnet++ 项目中使用它。我正在使用 Omnet++ 5.3。为此,我创建了一个新的 Omnet++ 项目,放入我的源文件并在 makemake 选项中选择了以下选项:

目标类型:Shared libraryExport this shared/static library for other projects

编译:Export include paths for other projectsForce compiling object files for use in DLLs

在引用项目中,我在 makemake 选项中做了以下操作:

目标:Executable

编译:Add include paths exported from referenced projectsAdd include dirs and other compile options from enabled project features

链接:Link with libraries exported from referenced projectsAdd libraries and other linker options from enabled project features

另外,我将共享库项目添加到项目引用中。在引用项目中,我想包含共享库项目的头文件。但是,我不能包括它。我尝试了不同的方案来包含它,例如"MODULENAME/HEADERFILE"<MODULENAME/HEADERFILE>"HEADERFILE"<HEADERFILE>。我在 macOS 和 Windows 上都试过了。任何想法如何解决这一问题?这与必须提供头文件的相对路径的较新 Omnet 版本中更改的包含方案有关吗?非常感谢!

【问题讨论】:

    标签: c++ omnet++


    【解决方案1】:

    尝试手动将带有头文件的目录添加到引用项目中。
    为此:在引用项目中转到Project | Properties | OMNeT++ | Makemeke |选择根目录或src 目录 | Options,然后是Custom | Makefrag 并写下以下行:

    CFLAGS += -IC:/path/to/sharedproject
    

    其中C:/path/to/sharedproject 是包含共享项目的头文件的目录。

    【讨论】:

    • 谢谢,这行得通。但是,在我看来,这似乎是一种蛮力方法。我认为当我使用 IDE(包括设置上述所有选项的可能性)时,作为开发人员的任务不应该是我的任务,但至少它现在可以工作。
    • 我同意你的看法。它看起来像一个错误,我已经在OMNeT++ Bugtracker 中报告了它。
    猜你喜欢
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-28
    • 2017-01-19
    • 2012-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多