Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

怎样实现条件编译? #18

Open
WayneY opened this issue Aug 30, 2022 · 5 comments
Open

怎样实现条件编译? #18

WayneY opened this issue Aug 30, 2022 · 5 comments

Comments

@WayneY
Copy link

WayneY commented Aug 30, 2022

比如那些 -DXXXXX 的条件,在CMake以及别的很多make中,可以通过这样的条件选项使用不同的头文件啊源码文件啊以及不同的库和选项。从emake的readme看,和这种比较类似的是name? 那么这个怎么使用呢?在不写ini的情况下。

@skywind3000
Copy link
Owner

skywind3000 commented Aug 31, 2022

可以支持的,加斜杠即可,比如:

iossim/flag: -arch i386, -stdlib=libstdc++, -DAUDIO_STATIC_BUILD, -mfloat-abi=softfp
iossim2/flag: -arch x86_64, -stdlib=libstdc++, -DAUDIO_STATIC_BUILD, -mfloat-abi=softfp
iosarm/flag: -arch armv7, -stdlib=libstdc++, -DAUDIO_STATIC_BUILD, -mfloat-abi=softfp
iosarmv7s/flag: -arch armv7s, -stdlib=libstdc++, -DAUDIO_STATIC_BUILD, -mfloat-abi=softfp
iosarm64/flag: -arch arm64, -stdlib=libstdc++, -DAUDIO_STATIC_BUILD, -mfloat-abi=softfp
android/flag: -mfloat-abi=softfp

src: ../service/cJSON.c
src: ../service/JsonCpp.cpp
src: ../service/NetTools.cpp
src: ../service/HttpReport.cpp
win32/src: ../service/DeviceListenerWin.cpp

@WayneY
Copy link
Author

WayneY commented Aug 31, 2022

加斜杠这个就是readme里说的name吧,但是怎么调用呢?比如要用 win32/src 那段,而这些配置都在 proj.mak 里, 那么是 emake proj.mak -Dwin32 吗? 我试了下好像并不行啊……

@skywind3000
Copy link
Owner

skywind3000 commented Aug 31, 2022

这个写在 ini 文件里面,你建立一个 emake.ini 放到 emake 同级目录即可

还可以在:

~/.config/emake 

目录下面建立多个 ini 文件,比如 abc.ini

编译的时候:

emake --cfg=abc   ....

即可。

@WayneY
Copy link
Author

WayneY commented Aug 31, 2022

额,这样的话,相当于就是说需要一个 proj.mak 文件,一个 emake.ini 文件,然后再需要在命令行中指定, 并且ini文件用等号,mak文件用冒号…… 总觉得这部分不是特别方便。 readme里的 ini 都是比较通用的工具链,这么设置很合理,而一个具体工程里的那些条件,基本只用这么一次,这样在编译脚本外再搞一个就有点多了…… 并且不论是emake的同级目录还是~/.config/emake, 都是较为全局的设置,而不是单个项目的设置

Anyway, 非常感谢耐心的解答!

@skywind3000
Copy link
Owner

ini 文件是用于配置不同工具链,而 .mak 是工程文件,两个正交,工具链配置一次即可。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants