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

macOS兼容性问题 #6

Open
ZZy979 opened this issue Jun 28, 2022 · 0 comments
Open

macOS兼容性问题 #6

ZZy979 opened this issue Jun 28, 2022 · 0 comments

Comments

@ZZy979
Copy link
Owner

ZZy979 commented Jun 28, 2022

当前的代码在Linux系统上可以编译通过,但是在macOS系统上会报错,每一章存在的问题如下:

第1章

问题1:getline函数与标准库<stdio.h>中的函数冲突

/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/stdio.h:355:9: error: 
      conflicting types for 'getline'
ssize_t getline(char ** __restrict __linep, size_t * __restrict __linecapp, FILE * ...

解决方法:在Makefile的CFLAGS变量后添加-D _ANSI_SOURCE

第2章

问题2:clang编译器不识别-Wno-builtin-declaration-mismatch选项

warning: unknown warning option '-Wno-builtin-declaration-mismatch'

解决方法:改为-Wno-incompatible-library-redeclaration

问题3:_test.out构建规则匹配错误

cc -o any_test.out any_test.o
Undefined symbols for architecture x86_64:
  "_any", referenced from:
      _main in any_test.o
ld: symbol(s) not found for architecture x86_64

解决方法:Makefile规则%_test.out放在%.out之前(在macOS上,一个目标匹配多个模式规则时,make并不是像文档10.5.4 How Patterns Match中所说选择匹配最准确的规则,而是选择第一个匹配的规则)

第3章

问题3

第4章

问题1、3

第5章

问题1、2、3,包括子目录

第6章

问题3

第7章

问题3

问题4:浮点计算规则差异导致以下单测失败

Testing rudimentary_calculator.out...9c9
<       -nan
---
>       nan
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

1 participant