gpt4 book ai didi

带有 waf 的 C++ 头文件库

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:18:54 24 4
gpt4 key购买 nike

美好的一天,在完全迁移到 waf (1.7.5) 之前,我尝试创建一个这种结构的简单项目:

wafproject
├── application
│ ├── main.cpp
│ └── wscript
├── library1
│ ├── foo1.hpp
│ ├── foo2.hpp
│ └── wscript
└── wscript

这是根wscript:

def options(opt) :
opt.load('compiler_cxx')

def configure(cnf) :
cnf.load('compiler_cxx')

def build(bld) :
bld.recurse('library1')
bld.recurse('application')

这是应用程序 wscript:

def build(bld) :
bld( features = 'cxx cxxprogram'
, target = 'application'
, source = 'main.cpp'
, use = ['library1']
)

这是library1 wscript

def build(bld) :
bld( name = 'library1'
, inludes = '../../'
, export_inludes = '../../'
)

(注意:我已经尝试使用 target 而不是 library1name,而且我也尝试为 library1 启用 cxx cxxshlib 功能。)

这是main.cpp:

#include <wafproject/library1/foo1.hpp>
#include <wafproject/library1/foo2.hpp>

int main()
{
}

这是我得到的错误:

Setting top to                           : /home/<path>/wafproject 
Setting out to : /home/<path>/wafproject/build
Checking for 'g++' (c++ compiler) : /usr/bin/g++
'configure' finished successfully (0.038s)
Waf: Entering directory `/home/<path>/wafproject/build'
[1/3] cxxshlib: -> build/library1/liblibrary1.so
[2/3] cxx: application/main.cpp -> build/application/main.cpp.1.o
../application/main.cpp:1:40: fatal error: wafproject/library1/foo1.hpp: Directory or file does not exist.
compilation terminated.
Waf: Leaving directory `/home/<path>/wafproject/build'
Build failed
-> task in 'application' failed (exit status 1):
{task 139729350901264: cxx main.cpp -> main.cpp.1.o}
['/usr/bin/g++', '../application/main.cpp', '-c', '-o', 'application/main.cpp.1.o']

我不想更改我包含 header 的方式,但为此我显然需要更改我的项目设置方式。

我很乐意提供任何意见,谢谢。

编辑:已解决,这只是一个拼写错误(inludes 而不是 includesexport_inludes 而不是 export_includes ).

最佳答案

由于这是“header only library waf”在 google 上的第一件事,我认为我应该发布通用解决方案。

bld(name = 'libname', export_includes = 'PATH/TO/lib/')

这对我有用。

关于带有 waf 的 C++ 头文件库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13326434/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com