【发布时间】:2021-09-22 02:31:36
【问题描述】:
我正在尝试将现有代码树移植到 centos 7 机器上的介子构建系统。介子配置工作正常,但是当我尝试编译时,它失败了。代码是专有的,所以我创建了一个示例来说明问题(我希望足够准确。)我不能随意重构目录树。
这是树:
mesonex/
alpha/
beta/
alpha/
inc/
funcs.h
numbers.h
src/
numbers.cpp
funcs.cpp
src/
example.cpp
meson.build
我的 meson.build:
project('example', 'cpp')
srcs=['example.cpp']
srcs+='../beta/alpha/src/funcs.cpp'
srcs+='../beta/alpha/src/funcs.cpp'
incdirs=include_directories('../beta/alpha/inc')
executable('example', srcs, include_directories: incdirs)
这里是主要的 example.cpp 文件:
#include <iostream>
#include "../beta/alpha/inc/numbers.h"
#include "../beta/alpha/inc/funcs.h"
int main()
{
std::cout << "Hello" << std::endl;
std::cout << interestingNumber() << std::endl;
std::cout << interestingFunc() << std::endl;
}
这些是支持的 cpp 文件:
// funcs.cpp
#include "../inc/numbers.h"
float interestingFunc()
{
return (interestingNumber()+1)/2;
}
// numbers.cpp
float interestingNumber()
{
return 11.3355;
}
这些是头文件:
// funcs.h
float interestingFunc();
// numbers.h
float interestingNumber();
请注意,目录名称的重复是故意的。也许这让介子在弄清楚如何处理#includes 时感到困惑?
这只是我尝试过的许多不同构建策略的一个示例。
【问题讨论】:
-
以什么方式失败?什么是编译器错误消息?
标签: c++ linux build centos meson-build