- 论坛徽章:
- 2
|
本帖最后由 cdsfiui 于 2017-08-11 21:47 编辑
- #include<iostream>
- #include<atomic>
- struct A { int a[4]; };
- struct B { int x, y; };
- int main()
- {
- std::cout << std::boolalpha
- << "std::atomic<A> is lock free? "
- << std::atomic<A>{}.is_lock_free() << '\n'
- << "std::atomic<B> is lock free? "
- << std::atomic<B>{}.is_lock_free() << '\n';
- }
复制代码
就上面这一点代码:
clang++ -std=c++11编译:
- Undefined symbols for architecture x86_64:
- "___atomic_is_lock_free", referenced from:
- _main in atomics.o
- ld: symbol(s) not found for architecture x86_64
- clang: error: linker command failed with exit code 1 (use -v to see invocation)
复制代码
g++4.8.5编译:
- /tmp/ccvfzqdw.o: In function `std::atomic<A>::is_lock_free() const':
- 1.cpp:(.text._ZNKSt6atomicI1AE12is_lock_freeEv[_ZNKSt6atomicI1AE12is_lock_freeEv]+0x17): undefined reference to `__atomic_is_lock_free'
- collect2: error: ld returned 1 exit status
复制代码
难道还需要连接额外的库吗?
|
|