我的程序的一部分是計算sqrt
的浮點數。 當我寫sqrt(1.0f);
我成功編譯程序,但是當我寫sqrt(-1.0f);
編譯失敗與undefined reference to 'sqrt'
- 我想,在這種情況下,nan
值將返回...... 我編譯程序uing GCC。 當我用visual studio編譯它時,它會被成功編譯並帶有負面的參數給sqrt。 怎樣的問題可以解決 謝謝未定義引用`sqrt'
2
A
回答
5
您必須添加在大多數基於Unix的系統的-lm
標誌,如:
編譯使用:
gcc -c file.c
然後鏈接使用:
gcc -o program file.o -lm
或者,如果你不想分開的兩個編譯步驟,簡單的寫:
gcc -o program file.c -lm
4
與-lm
鏈路與數學庫鏈接
+0
你能否給出一個理由。我試着在頭文件中包含
相關問題
- 1. 未定義的引用sqrt(geany)
- 2. main.c :(。text + 0x170):未定義引用`sqrt'(已使用-lm)
- 3. 未定義的引用的sqrt(或其他數學函數)
- 4. 在Y3 6.1和Cell SDK 3.1的PS3上從math.h未定義對'sqrt'的引用?
- 5. 未定義引用'FIPS_mode'
- 6. 未定義的引用TTF_Init
- 7. 未定義的引用'readline'
- 8. 未定義引用curl
- 9. compat_libevent.c未定義引用'event_set_log_callback'
- 10. libTogl未定義的引用
- 11. GLFW未定義的引用
- 12. libsndfile:未定義的引用
- 13. Makefile:未定義引用'std :: ...'
- 14. 定義組件未引用
- 15. Android NDK:未定義引用''
- 16. 未定義引用'DTLS_client_method'
- 17. 未定義的引用memdup
- 18. 未定義的引用?
- 19. 未定義引用'cv :: findHomography
- 20. 未定義引用`__errno_location'
- 21. 未定義的引用'ceilf'
- 22. 未定義的引用'_imp__InitBizLib'
- 23. 未定義的引用'JNI_CreateJavaVM'linux
- 24. 未定義的引用gets_s
- 25. 未定義的引用`_gfortran_transfer_character'
- 26. 未定義的引用staticMetaObject
- 27. 未定義的引用vtable
- 28. 未定義引用`sendArrayObj :: count()'
- 29. 未定義的引用gets_s?
- 30. 未定義的引用'u_fopen_48'
的gcc -o myprog.c中-lm MYPROG的-l以包括數學庫-lm庫米。 – 2012-01-08 19:41:38