最近,我試圖構建一個應用程序,它使用一些庫,以共享對象文件的形式提供。我浪費了大量的時間來編譯CPP代碼,並沒有奏效。爲什麼傳遞參數的順序爲g ++重要
下面是命令,我以前試圖編譯代碼 -
g++ -I/opt/ros/indigo/include/ -I/usr/include/eigen3/ -L/opt/ros/indigo/lib/ -lorocos-kdl -lkdl_parser test.cpp -o test
上面的命令總是顯示許多undefined references
錯誤。爲了好奇,我改變了參數的順序。下面是命令,這是working-
g++ -L/opt/ros/indigo/lib -I/opt/ros/indigo/include -I/usr/include/eigen3 test.cpp -lorocos-kdl -lkdl_parser -o test
我張貼的完整代碼和解決方案here。
我的問題是爲什麼將參數傳遞給g ++的順序很重要?未來有沒有其他方法可以避免這些問題?
我感謝您的解釋。順便說一句,未來有沒有其他辦法可以避免這種複雜情況? –
@RaviJoshi是的。始終將庫*最後*放在命令行上。 :) –